我该如何通过逗号(,)将JavaScript变量分隔/分离。
然后检查任何一个被分隔的字符串的值 = "something"
例如,我的变量的值为1,2,3,4,5,6,7,8,9,10,2212312
,我想在IF语句中检查是否有任何数字= 7
。
有没有人有任何想法如何做到这一点?
我该如何通过逗号(,)将JavaScript变量分隔/分离。
然后检查任何一个被分隔的字符串的值 = "something"
例如,我的变量的值为1,2,3,4,5,6,7,8,9,10,2212312
,我想在IF语句中检查是否有任何数字= 7
。
有没有人有任何想法如何做到这一点?
首先,按","
分割字符串。然后,在分割后的字符串数组上使用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
}
参考资料:
String.prototype.split
- https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String/splitArray.prototype.indexOf
- https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf这是一个 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.some
,Array.prototype.indexOf
和Array.prototype.contains
都需要填充以在跨浏览器上正确工作。
"1,2,3,4,5,6,7,8,9,10,2212312".split(",").indexOf("7")
希望这能对你有所帮助。
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");
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));
var someString = '1,2,3,4,5,6,7,8,9,10,2212312';
var splitArray = someString.split(',');
var sevenPosition = splitArray.indexOf('7');
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 ) { /* ... */ }
if ($.inArray(7, value-of-any-of-the-seperated-strings))
{
console.log("there is a 7!")
}
',7,'
。 - jbabey