如何检查字符串是否包含其他字符串中的任何字符?

时间:2017-04-11 16:03:19

标签: javascript

如何确定src中的任何个别字符是否与restricted中的任何个别字符匹配?我有这个JS方法可以完成这项工作,但如果可以,我想改进它:

function CheckRestricted(src, restricted)
{
    for (var i = 0; i < src.length; i++)
    {
        for (var j = 0; j < restricted.length; j++)
        {
            if (src.charAt(i) == restricted.charAt(j))
                return false;
        }            
    }

    return true;
}

如果这是C#,我可以用LINQ在一行中实现这一点:

bool CheckRestricted(string src, string restricted)
{
    return src.Any(s => restricted.Contains(s));
}

JS中是否存在某些我不知道的类似功能?

编辑:示例用例:

CheckRestricted("ABCD", "!+-=;:'`"); //true
CheckRestricted("ABCD!", "!+-=;:'`"); //false

它主要用于禁止'特殊字符'。

2 个答案:

答案 0 :(得分:5)

function CheckRestricted(src, restricted) {
   return !src.split("").some(ch => restricted.indexOf(ch) !== -1);
}

答案 1 :(得分:0)

无循环解决方案。

&#13;
&#13;
function CheckRestricted(src, restricted) {
  var a = [...src, ...restricted];
  return [...new Set(a)].length == a.length;
}

console.log(CheckRestricted('word', 'abc'));
console.log(CheckRestricted('word', 'wor'));
&#13;
&#13;
&#13;