2

ユーザー入力を検証したい。ユーザーは4桁のみ入力できます。正規表現を使用してチェックし、奇妙な作業を確認します。Javascriptが理解できない\d

var expr1 = new RegExp("^\s*[0-9]{4,4}\s*");
var year = "1984";
alert (expr1.test(year));


var expr2 = new RegExp("^\s*\d{4,4}\s*");
alert (expr2.test(year));

「true」と「false」を警告します。 http://jsfiddle.net/HfHDu/

なんで?

4

2 に答える 2

6

コンストラクター\を使用するときは常にエスケープするRegExp

var expr1 = new RegExp("^\\s*[0-9]{4,4}\\s*");
var year = "1984";
alert (expr1.test(year)); //true


var expr2 = new RegExp("^\\s*\\d{4,4}\\s*");
alert (expr2.test(year)); //true
于 2011-11-03T12:07:32.853 に答える
2

\\dの代わりにを使用してみてください\d

于 2011-11-03T12:04:12.857 に答える