将单词与具有JavaScript Regexp的数组进行匹配
Matching a word against an array with JavaScript Regexp
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。我不知道我的错误是什么。谁能帮忙?谢谢。
您必须使用双重转义,因为您要编写字符串:
new RegExp("''b(" + nameArray[i] + ")''b");
你可能想看看管道(|
)在正则表达式中的含义。无需循环:
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
声明变量,否则你会生成全局变量,这是危险的,被认为是糟糕的风格。
我认为这样的正则表达式会起作用
re = new RegExp("^" + nameArray[i] + "$");
相关文章:
- 如何在映射数组中添加换行符
- javascript结合了数组和字典
- 需要帮助设置json数组
- 不能从angular2中的子组件指定父组件中的数组
- 使用JS将数组转换为json对象
- 数组在递归方法中设置为null
- knockoutjs可观察数组
- Javascript-如何读取json文件中的列并将其保存在Javascript数组中
- 将数组从PHP传递到Javascript
- JavaScript数组排序(函数)用于对表行进行排序,而不是排序
- 在函数中添加数组元素的数值
- 使用RegExp循环数组而不是for循环(Javascript)
- 将单词与具有JavaScript Regexp的数组进行匹配
- Javascript - 使用变量 RegExp 匹配数据数组中的多个关键字
- Angular2使用RegExp过滤管道对象数组
- RegExp用于验证不与数组一起工作的网站URL
- 创建regexp匹配数组(多行,javascript)
- 使用RegExp从JavaScript数组返回一个精确匹配
- 管理在数组中推送JSON响应或使用regexp进行匹配
- Regexp:返回不带分隔符的匹配数组