【发布时间】:2019-12-25 21:09:59
【问题描述】:
基本上,我试图查看名称的字符是否按顺序出现在字符串的字符中。
即'Across the rivers', 'chris' => true 因为:
'A crew that boards the ship', 'chris' => false 因为:
我有这个:
function nameInStr(str, name){
let stringArray = Array.from(str);
let testName = "";
for (let i = 0; i < stringArray.length; i++) {
if (stringArray[i].match(/any character from name/)) {
testName += stringArray[i];
}
}
if (testName === name) {
return true;
}
else {
return false;
}
}
console.log(nameInStr('Across the rivers', 'chris'));
但正如您所见,我不知道如何测试单个字符何时与name 中的任何字符匹配。有没有一种简单的方法可以用正则表达式做到这一点?
编辑 - 测试新方法
function nameInStr(str, name){
let nameregex = new RegExp(".*" + name.split("").join(".*") + ".*");
return str.test(nameregex);
}
console.log(nameInStr('Across the rivers', 'chris'));
【问题讨论】:
-
基本上,您希望将搜索到的文本“abc”转换为正则表达式
a.*b.*c(尽管这不是最有效的解决方案)
标签: javascript arrays regex string