我有一个变量 activeUserName
和一个变量 manager1
.
如何检查 activeUserName
至少包含三个字符,它们位于 manager1
中? (这些 Angular 色的位置无关紧要)
例如在以下情况下,它应该返回 true,因为字符 'J'、'o' 和 'e' 在 manager1
内。 .
var activeUserName = "JohnDoe100";
var manager1 = "JYZALoe999";
现在我正在使用 indexOf 方法并且只查看某些位置的字符,这就是我想改变它的原因:if (isEditor == false){
if (((activeUserName.indexOf(manager1.charAt(0)) !== -1) && (activeUserName.indexOf(manager1.charAt(2)) !== -1)) || (activeUserName.indexOf(manager1.charAt(4)) !== -1)){
// doSth();
} else if (((activeUserName.indexOf(manager2.charAt(0)) !== -1) && (activeUserName.indexOf(manager2.charAt(2)) !== -1)) || (activeUserName.indexOf(manager2.charAt(4)) !== -1)){
// doSth();
} else {
// doSth();
}
}
我读过关于 Regex 的文章,但我不确定这是否可以在这里应用。任何帮助表示赞赏!
最佳答案
结合.split()与 .filter()你可以改造活跃用户名 在数组中并针对字符串 过滤每个字符经理1 :
var activeUserName = "JohnDoe100";
var manager1 = "JYZALoe999";
var howMany = activeUserName.split('').filter(function(e, i, a) {
return (manager1.indexOf(e) != -1);
}).length;
console.log('The number of chars in common is: ' + howMany);
关于JavaScript 检查字符串是否至少有三个字符在另一个变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63304357/