用逗号分隔并检查任何一个值是否等于"something"

6

我该如何通过逗号(,)将JavaScript变量分隔/分离。

然后检查任何一个被分隔的字符串的值 = "something"

例如,我的变量的值为1,2,3,4,5,6,7,8,9,10,2212312,我想在IF语句中检查是否有任何数字= 7

有没有人有任何想法如何做到这一点?

8个回答

19

首先,按","分割字符串。然后,在分割后的字符串数组上使用indexOf来查找目标字符串是否存在(-1表示在数组中未找到)。例如:

var str = "1,2,3,4,5,6,7,8,9,10,10,2212312";
var split_str = str.split(",");
if (split_str.indexOf("7") !== -1) {
    // Original string contains 7
}

参考资料:


6

这是一个 Array.prototype.some 的简单应用:

var yourVar = '1,2,3,4,5,6,7,8,9,10,2212312';
function isSeven(val) {
    return val === '7';
}
if (yourVar.split(',').some(isSeven)) {
    //do stuff
}

这个也可以用另一种常见方式来写成:

if (~yourVar.split(',').indexOf('7')) {
    //do stuff
}

或者如果已定义Array.prototype.contains

if (yourVar.split(',').contains('7')) {
    //do stuff
}

或者如果您想使用正则表达式:

if (/(?:^|,)7(?:,|$)/.test(yourVar)) {
    //do stuff
}

注意: Array.prototype.someArray.prototype.indexOfArray.prototype.contains都需要填充以在跨浏览器上正确工作。


1
将其拆分为数组,然后使用indexOf查看是否存在。如果返回-1,则不存在。
"1,2,3,4,5,6,7,8,9,10,2212312".split(",").indexOf("7")

1

希望这能对你有所帮助。

    var yourValues = '1,2,3,4,5,6,7,8,9,10,2212312';
    var array = yourValues.split(",");
    boolean isValue = false;
    for(i in array)
    {
       if(array[i]=='7')
       {
             isValue=true;
       }
    }


    if(isValue)
        alert("your number is in the string");
    else
        alert("your number is in the string");

0
使用splitArray.indexOf()
var str = "1,2,3,4,5,6,7,8,9,10,2212312";
var num = 7;
var pieces = str.split(",");
var index = pieces.indexOf(num.toString());

这也可以用正则表达式来实现

var str = "1,2,3,4,5,6,7,8,9,10,2212312";
var num = 7;    
var re = new RegExp("(^|,)" + num + "($|,)");
alert(re.test(str));

jsFiddle 示例


0

1
如果数组中有207或17,它会失败吗? - epascarello
@epascarello 然后搜索 ',7,' - jbabey
1
如果它是第一个或最后一个项目,那该怎么办?它会再次失败。 - epascarello
@epascarello已删除了答案的那部分内容。感谢您的意见。 - jbabey

0
你可以使用 Array.filter,类似这样的方式:
var values = '1,2,3,4,5,6,7,8,9,10,2212312'.split(','), find = 7;
if ( values.filter(function(a){return +a === find;}).length ) { /* ... */ }

-2
你正在寻找“contains”函数吗?你可以使用jQuery来实现。
if ($.inArray(7, value-of-any-of-the-seperated-strings))
{
   console.log("there is a 7!")
}

2
虽然应该提到,如果OP没有使用jQuery,那么没有必要为了一个native to javascript的东西而包含如此庞大的库。 - Brad Christie

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接