我在输入框中有一串CSV格式的ID
12,23,26,32
我必须检查此字符串是否包含23或24,如果是,则返回false,否则返回true
答案 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;