use*_*711 9 javascript string var character indexof
我有一个变量activeUserName和一个变量manager1。
如何检查是否activeUserName包含至少三个字符,在manager1?(这些字符的位置无关紧要)
例如在下面的例子中,它应该返回 true,因为字符 'J'、'o' 和 'e' 在里面manager1。
var activeUserName = "JohnDoe100";
var manager1 = "JYZALoe999";
Run Code Online (Sandbox Code Playgroud)
现在我正在使用 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();
}
}
Run Code Online (Sandbox Code Playgroud)
我读过 Regex,但我不确定这是否可以应用在这里。
任何帮助表示赞赏!
gae*_*noM 12
将.split()与.filter()结合使用,您可以在数组中转换 activeUserName并根据字符串manager1过滤每个字符:
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);Run Code Online (Sandbox Code Playgroud)