我到处寻找,一切似乎都指出.test()应该能够测试整个字符串,但我无法让它工作。我尝试了以下方法:
var exp = new RegExp("^([a-z])$");
console.log( exp.test('hello') );
console.log( /^([a-z0-9])$/.test('abc12') );
当它应该是真的时,它们都返回false;
这是演示的链接: http://jsbin.com/ibokem/1/
答案 0 :(得分:2)
Character classes匹配单个字符。您需要repeat他们:
var exp = new RegExp("^([a-z]*)$");
console.log( exp.test('hello') );
console.log( /^([a-z0-9]*)$/.test('abc12') );
或者,如果您想要至少需要一个字符,请使用+
代替*
。
另外,如果您只是使用test
模式,则可以删除括号:
var exp = new RegExp("^[a-z]*$");
console.log( exp.test('hello') );
console.log( /^[a-z0-9]*$/.test('abc12') );