2

我到处看了看,一切似乎都表明 .test() 应该能够测试整个字符串,但我无法让它工作。我尝试了以下方法:

var exp = new RegExp("^([a-z])$");
console.log( exp.test('hello') );

console.log( /^([a-z0-9])$/.test('abc12') );

当它应该为真时,两者都返回假;

这是演示的链接:http: //jsbin.com/ibokem/1/

4

1 回答 1

2

字符类匹配单个字符。您需要重复它们:

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') );
于 2013-07-02T19:57:27.607 回答