2017-04-11 136 views
0

如何确定src中的任何单个字符是否与restricted中的任何单个字符匹配?我有这个JS方法,做这项工作,但我想,如果我可以对其进行改进:如何检查一个字符串是否包含来自另一个字符串的任何字符?

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

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实现这一目标

在JS中有一些类似的功能,我不知道?

编辑:样品用例:

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

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

+0

请添加一些用例。 –

+0

@NinaScholz编辑我的帖子与2个样本。 – sab669

+0

可能的重复[Javascript。检查,如果字符串中包含的文本从子阵列(http://stackoverflow.com/questions/5582574/javascript-checking-if-string-contains-text-from-an-array-of-substrings) –

回答

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

第二' .split(“”)'是没有必要 – Andreas

+0

你可以用'String.prototype.includes()' – MultiplyByZer0

+0

这似乎为我工作,至少它并使用基于Web的JS编译器。出于某种原因,Visual Studio 2013在'=>'上提供了'语法错误'?但是,VS知道什么JS,反正:) – sab669

0

无回路解决方案。

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

相关问题