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

\在 strings 中已经具有特殊含义,因此您需要对它们进行双重转义。

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

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

于 2013-03-07T20:30:41.960 回答