私は非常に奇妙な動作に気付きました。シンプルなスペースがすべてのテストを壊すのはなぜですか?Javascript、正規表現と{n、m}
rePattern = /^([a-z]+[-_]?){2,}[a-z]$/;
var test = new Array("jhgfg_hfh-g", "jhg-fg_hfhg", "jhg_fg_hfhg", "jhg_fg_hfhg", "jhg_fghfhg");
for (var i = 0; i < test.length ; i++) {
x = test[i];
alert(i + ' : ' + x + ' : ' + rePattern.test(x));
}
私はfalse
なるすべて、その後
// notice {2,} => {2, } with an extra space before }
rePattern = /^([a-z]+[-_]?){2, }[a-z]$/;
に上記を変更した場合...
はちょうどここに受け入れ答えを持っているために、Uに
を。正規表現の構文は厳密ですが、ランダムな空白を追加することはできず、無視されることを期待しています。 '{2、}'はリテラル '{2、}'と一致します。 – duri
@duriあなたのコメントは答えです、なぜあなたは答えとして投稿しないのですか? – stema
大丈夫、申し訳ありませんが、私はそれが大丈夫だと確信していました。ちょうどそれをPythonでテストし、あなたもそこにいます... – lctv31