可以在JavaScript中使用Regex .test()测试整个字符串吗?

时间:2013-07-02 19:55:44

标签: javascript regex frontend

我到处寻找,一切似乎都指出.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/

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') );