0

以下が機能しない理由を誰か教えてもらえますか?:

フィドル: http://jsfiddle.net/anderslyman/86NHs/

JavaScript:

var value = 'lorem ipsum dolor sit amet';
var wordLength = 11;
var find = new RegExp('\b[a-zA-Z]{2,' + wordLength + '}\b');
console.log(value.match(find));
console.log(value.match(/\b[a-zA-Z]{2,11}\b/));

正規表現は同じなので、両方のconsole.log()ステートメントが同じものを出力すると思います...

4

1 に答える 1

4

\はすでに文字列内で特別な意味を持っているため、ダブルエスケープする必要があります。

var find = new RegExp('\\b[a-zA-Z]{2,' + wordLength + '}\\b');

http://jsfiddle.net/mattball/35Msf

于 2013-03-07T20:30:41.960 に答える