Javascript 函数返回正则表达式测试
晚上好,我不是一个特别好的程序员 我想返回keywordChk函数的结果,与一组更大的测试关键字相对应。 然而,当我这样做时,由于我缺乏技能,它会返回意想不到的结果 以下工作;但是,由于将短语硬编码到函数中,因此它有一定的局限性Javascript 函数返回正则表达式测试,javascript,Javascript,晚上好,我不是一个特别好的程序员 我想返回keywordChk函数的结果,与一组更大的测试关键字相对应。 然而,当我这样做时,由于我缺乏技能,它会返回意想不到的结果 以下工作;但是,由于将短语硬编码到函数中,因此它有一定的局限性 let arr = [ /test$/i, /foo$/i, /bar$/i ]; function keywordChk(phrase) { for (let tmp of arr) { let pattern = new R
let arr = [
/test$/i,
/foo$/i,
/bar$/i
];
function keywordChk(phrase) {
for (let tmp of arr) {
let pattern = new RegExp(tmp);
if (pattern.test(phrase)) {
console.log(`true`);
} else {
console.log(`false`);
};
};
};
keywordChk("foo");
当我通过考试时,我得到两个错误和一个正确。然而,我希望一切都被标记为真实
let str = [
"foo",
"bar",
"test"
];
let arr = [
/test$/i,
/foo$/i,
/bar$/i
];
function keywordChk(phrase) {
for (let tmp of arr) {
let pattern = new RegExp(tmp);
if (pattern.test(phrase)) {
return true;
}
return phrase;
};
};
str.forEach(function(item) {
console.log(keywordChk(item));
});
任何帮助都将不胜感激 返回语句必须在for循环之后:
let str=[“foo”,“bar”,“test”];
设arr=[/test$/i,/foo$/i,/bar$/i];
函数关键字CHK(短语){
用于(arr的常量regExp){
if(regExp.test(短语)){
返回true;
}
}
return phrase;//或return false;
}
str.forEach(功能(项目){
console.log(关键字chk(item));
});代码>欢迎来到SO!此代码仅检查循环中的第一个元素,如果不匹配,则返回短语。您的意思是将返回短语
下移一行吗?@ggorlen感谢您的热情接待和迅速回复。根据你的回答,我可能有两个问题?首先,我故意硬编码匹配字符串作为我的正则表达式数组进行测试。因此,在我的代码示例中,我希望在console.log 3中使用true语句。不是1对2错或短语。第二个问题是我的循环?也许是根据你的反馈。抱歉,根据您的回答,我没有足够的智慧修改我的代码以修复原始问题。@ggorlen我刚刚尝试了一下您所说的,它成功了,谢谢!你刚刚救了我一天多,我甚至可能已经放弃了!太棒了,谢谢!看起来它成功了,天哪,这太棒了。你可以省去let pattern=new RegExp(tmp)
并直接使用tmp
而不是pattern
,因为tmp
已经是一个正则表达式。@cars10m感谢您检查我的代码并提供压缩它的解决方案。它将帮助我完善我未来的脚本。非常感谢。