简体   繁体   English

如何检查一个字符串是否包含另一个字符串中的任何字符?

[英]How to check if a string contains any character from another string?

How can I determine if any individual character in src matches any individual character in restricted ? 如何确定src中的任何单个字符是否与restricted任何单个字符匹配? I have this JS method which does the job, but I'd like to improve it if I can: 我有可以执行此工作的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;
}

If this were C#, I could achieve this with LINQ in a single line: 如果这是C#,则可以用LINQ在一行中实现:

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

Is there some sort of similar functionality in JS that I'm unaware of? 我不知道JS中是否有某种类似的功能?

EDIT: Sample use case: 编辑:示例用例:

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

It is predominantly used to disallow 'special characters'. 它主要用于禁止“特殊字符”。

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

No-loop solution. 无回路解决方案。

 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')); 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM