我有一个允许字符串为空的正则表达式。如果它不是空的,字符串可能只包含字母和空格。但它可能不会以空间开始或结束。Javascript的正则表达式应该允许空字符串和非空字符串,但它不会
这个正则表达式应该做好这项工作: ^(?!)[a-zA-Z]*[a-zA-Z ]*$
我在这里已经测试过它:http://tools.netshiftmedia.com/regexlibrary/
但是,当我执行这在我的JS,它不允许一个字符串为空。
这是代码
function validatePreposition(name) {
string = string = document.forms['form'][name].value;
pattern = new RegExp('^(?!)[a-zA-Z]*[a-zA-Z ]*$');
checkString(name, pattern, string);
}
function checkString(name, pattern, string) {
if(!pattern.test(string)) {
error[name] = 1;
} else {
error[name] = 0;
}
printErrors();
}
如何更改我的代码,这样一个空字符串被允许?
什么是“(?!)”? – jergason
@Jergason负面看法:http://www.regular-expressions.info/lookaround.html – Marcus
我不确定你的意思; '/ ^(?!)[a-zA-Z] * [a-zA-Z] * $ /。test(“”)=== true'。 – pimvdb