0

我在输入框中有一串 CSV 格式的 ID

12,23,26,32

我必须检查这个字符串是否包含 23 或 24,如果是则返回 false,否则返回 true

4

5 回答 5

1

使用 indexOf。您可以检查它是否包含子字符串。如果未找到,则返回 -1

var str = "12,23,26,32"
return !(str.indexOf("23")!=-1 || str.indexOf("24")!=-1) // Dont have 23 or 24

=======编辑=======

就像@Matt 在评论中所说,这个解决方案也适用于“12,239,26,32”,这不是重点。

在检查 indexOf 之前进行拆分,然后您将获得逗号之间的元素。

var array = "12,23,26,32".split(",");
return !(array.indexOf("23")!=-1 || array.indexOf("24")!=-1) // Dont have 23 or 24
于 2013-02-01T11:45:16.583 回答
1
!/(^|,)2[34](,|$)/.test( str );

或者是否可能存在空格

!/(^|,)\s*2[34]\s*(,|$)/.test( str );

如果字符串参数与正则表达式匹配或不匹配, RegExptest方法将返回。反转测试调用的结果。truefalse!

^是字符串开头的元字符,因此(^|,)表示“字符串开头”或“一个逗号字符”。

不能这样写[^,],因为这意味着“一个不是逗号的字符”,也不能这样写[,^],因为这意味着“一个字符既可以是逗号,也可以是文字^字符。

2[34]表示 2 后跟 3 或 4。
(,|$)表示逗号或$字符串的结尾。
\s*表示零个或多个空格字符。

于 2013-02-01T11:49:28.993 回答
0
if (/(?:^|,)(23|24)(?:,|$)/.test("12,23,26,32")) {
   /* found 23 or 24 */
}
于 2013-02-01T11:47:13.057 回答
0

尝试这个

var str = "12,23,26,32";

var isFound = (str.indexOf('23') || str.indexOf('24')) > -1;
于 2013-02-01T11:47:31.627 回答
-1
var str = "12,23,26,32";

var obj = str.split(",");

var isFound = false;

for(i=0; i < obj.length; i++)
{
     if(obj[i] == "23" || obj[i] == "24")
     {
          isFound = true;
          break;
     }
}
return isFound;
于 2013-02-01T11:42:36.510 回答