4
var str = "1405199610";
var re = new RegExp("\d{10}");
var myArray = re.test(str);

myArray は false を返します!

これはどのように可能ですか?これをオンラインの正規表現チェッカーでテストしたところ、問題なくチェックアウトされました。コンソールまたはjsfiddlerで試してみると、うまくいきません。何か不足していますか?

4

1 に答える 1

13
var re = new RegExp("\\d{10}");

オブジェクト\によって正規表現が作成されたときにエスケープする必要がありますRegExp()

MDN リファレンスを参照

...また、\ は文字列のエスケープ文字でもあるため、新しい RegExp("pattern") 表記を使用する場合は、\ 自体をエスケープすることも忘れないでください。

于 2012-05-24T14:30:50.330 に答える