JavaScript 检查字符串是否至少有三个字符在另一个变量中

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)