nameArray = new Array("Bob", "Ben", "Don");
for (i = 0; i < nameArray.length; i++) {
re = new RegExp("\b(" + nameArray[i] + ")\b");
checkWord = re.test("Bob");
if (checkWord) {
alert("true");
} else {
alert("false");
}
}
它返回错误3次。它应该在循环第一次运行时返回true。 我不知道我的错误是什么。有人可以帮忙吗?感谢。
答案 0 :(得分:3)
您必须使用双重转义,因为您正在编写一个字符串:
new RegExp("\\b(" + nameArray[i] + ")\\b");
答案 1 :(得分:1)
您可能想要查看管道(|
)在正则表达式中的含义。无需循环:
var nameArray = new Array("Bob", "Ben", "Don");
var nameExpression = nameArray.join('|');
var re = new RegExp('\\b(' + nameExpression + ')\\b');
var checkWord = re.test('A string containing the word Bob in it.');
if (checkWord)
console.log('+');
else
console.log('-');
此外,您没有声明您的变量。你应该使用var
声明变量,否则你将生成危险的全局变量并被认为是错误的样式。
答案 2 :(得分:0)
我认为像这样的正则表达式会起作用
re = new RegExp("^" + nameArray[i] + "$");