[英]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.