javascript jQuery - 给定逗号分隔列表,如何确定值是否存在

时间:2011-01-03 21:14:55

标签: javascript jquery

给出如下列表:

1,3,412,51213,djdd@asdasd.net, blahblah, 123123123123

作为值存在于输入类型“text”内:

<input type="text" value="1,3,412,51213,djdd@asdasd.net, blahblah, 123123123123, wow@wow.com" />

如何确定是否存在值,例如3,还是blahblah或wow@wow.com?

我尝试用inputval.split(',')分割,但这只给了我数组。可以搜索吗?

5 个答案:

答案 0 :(得分:7)

像这样:

if (jQuery.inArray(value, str.replace(/,\s+/g, ',').split(',')) >= 0) {
    //Found it!
}

replace调用会删除逗号后的任何空格 inArray返回匹配的索引。

答案 1 :(得分:5)

使用jQuery:

var exists = $.inArray(searchTerm, $('input').val().split(',')) != -1;

exists现在是一个布尔值,表示是否在值中找到了searchTerm

答案 2 :(得分:1)

var list = inputval.split(',');
var found = false;
for (var i=0; i<list.length; ++i) {
  if (list[i] == whateverValue) {
    found = true;
    break;
  }
}

如果值匹配必须属于同一类型,则使用“===”可能会更加挑剔。否则,只需使用“==”,因为它会以您可能期望的方式将int与字符串进行比较。

答案 3 :(得分:0)

您想要使用var arr = theString.split(','),然后使用var pos = arr.indexOf('3');

http://www.tutorialspoint.com/javascript/array_indexof.htm

答案 4 :(得分:0)

这样做:

var val = $('myinput').val()
val = ',' + val.replace(', ',',').replace(' ,',',').trim() + ','; // remove extra spaces and add commas
if (val.indexOf(',' + mySearchVal + ',' > -1) {
    // do something here
}

它确保开始和结束空间也被忽略(我认为这就是你想要的)。