在字符串中查找字符串的多个片段

时间:2013-02-01 11:38:38

标签: javascript string

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

12,23,26,32

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

5 个答案:

答案 0 :(得分:1)

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

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

======= EDIT =======

就像@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

答案 1 :(得分:1)

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

或者是否存在空白

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

如果字符串参数与正则表达式匹配,则RegExp test方法返回true,否则返回false!反转了测试调用的结果。

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

它不能写成[^,],因为这意味着'一个不是逗号的字符',并且它不能写成[,^],因为这意味着'一个字符要么是逗号或文字^字符。

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

答案 2 :(得分:0)

if (/(?:^|,)(23|24)(?:,|$)/.test("12,23,26,32")) {
   /* found 23 or 24 */
}

答案 3 :(得分:0)

试试这个

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

var isFound = (str.indexOf('23') || str.indexOf('24')) > -1;

答案 4 :(得分:-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;