Javascript字符串等于这些符号中的一个

Javascript string equals on of these symbols

本文关键字:一个 字符串 于这些 符号 Javascript      更新时间:2023-09-26

我正在尝试评估字符串是否等于这些符号之一|'~+

但是这行不通:

var a = 'abcted',
    b = '|'~+';
if( a !== b ){
}

如果a等于b中的一个符号,则计算结果为false

您可以使用indexOf:

方法简单地检查一个字符串是否包含另一个字符串
var b = '|'~+';
if (b.indexOf(a) == -1) {
  // b doesn't contain a
}

对函数includes提出了一个新的建议,它将像这样工作,但(尚未)在许多浏览器中。

var b = '|'~+';
if (!b.includes(a)) {
  // b doesn't contain a
}

你可以使用正则表达式来解决这个问题,像这样

if (/[|''~'+]/.test(a) === false) {
    // `a` doesn't contain any of the symbols.
}

[|''~'+]检查字符组中是否有字符在a中。如果它们都不存在,则test将返回false

console.log(/[|''~'+]/.test("abcted"));
// false
console.log(/[|''~'+]/.test("abc|ted"));
// true
console.log(/[|''~'+]/.test("abc''ted"));
// true
console.log(/[|''~'+]/.test("abc~ted"));
// true
console.log(/[|''~'+]/.test("abc+ted"));
// true

我更喜欢在可能的情况下使用RegEx,但是对于那些不想这样做的人:

var a = 'abcted',
    b = '|'~+';
for (var i = 0, len = b.length; i < len; i++) {
    if (a.indexOf(b[i]))  
    {   
        alert(b[i]);
    }
}