2

私はどこでも見てきました.test()は文字列全体をテストできるはずですが、動作させることができません。私は次のことを試しました:

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

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

どちらも true であるはずの場合に false を返します。

デモへのリンクは次のとおりです: 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') );

または、少なくとも 1 文字が必要な場合は、+代わりに*.

また、 でパターンを使用しているだけの場合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 に答える