Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript jQuery-给定一个逗号分隔的列表,如何确定值是否存在_Javascript_Jquery - Fatal编程技术网

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

javascript jQuery-给定一个逗号分隔的列表,如何确定值是否存在,javascript,jquery,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(',')进行拆

给出如下列表:

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(',')进行拆分,但这只提供数组。可以搜索吗?

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

var list=inputval.split(',');
var=false;
对于(var i=0;i,如下所示:

if (jQuery.inArray(value, str.replace(/,\s+/g, ',').split(',')) >= 0) {
    //Found it!
}
replace
调用删除逗号后的所有空格。
返回匹配的索引。

这样做:

var val = $('myinput').val()
val = ',' + val.replace(', ',',').replace(' ,',',').trim() + ','; // remove extra spaces and add commas
if (val.indexOf(',' + mySearchVal + ',' > -1) {
    // do something here
}
它还确保忽略起始和结束空格(我想这就是您想要的)。

利用jQuery:

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

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

3
“3”
相同,还是它们应该被视为不同?@Patrick same,我认为这就是为什么我可以工作的问题…我需要转换数据[num][opts.selectedValuesProp]要在数组中找到整数?如果使用大多数答案中建议的
.split()
解决方案,结果数组中的每个项都将是字符串。因此,如果使用
jQuery.inaray()将数字
3
与字符串
“3”
进行比较
,它将进行严格的比较,但会失败。如果您知道总是将字符串与字符串进行比较,这不会是一个问题。如果您需要将数字与字符串进行比较,您需要自己循环数组,并使用
=
进行更松散的比较。
indexOf
不是字符串类型的方法,而不是数组类型的方法吗键入?给出的链接似乎证明了这一点。实际上是和否……因为字符串是一个字符数组,它基本上做了相同的事情……也许更清晰的链接就足够了。@Lazaroff:仅在IE中。@Dutchie432:那完全错了。字符串与字符数组无关。参数是
(值,数组)
如果找不到匹配项,则返回值为-1。谢谢,奇怪的是仍然无法工作,下面是我尝试替换的一行代码,给出了一些错误修复:if(str.search(query)!=-1&&values\u input.val().search(“,”+data[num][opts.selectedValuesProp]+”)=-1{所以我采纳了你的想法,并更新为:if(jQuery.inArray(data[num][opts.selectedValuesProp],values_-input.val().replace(/,\s+/g,,')).split(',')>=0{console.log('found it')}但在给定console.log(query)console.log(data[num][opts.selectedValuesProp])console.log(values_-input.val().replace(/,\s+/g,,'))的情况下,它不工作(jQuery.inArray(data[num][opts.selectedValuesProp],values_input.val().replace(/,\s+/g',,')).split(','))>=0){console.log('found it')}@SLaks如果value是
values
,这将不起作用。我的意思是多个元素。这个答案做出了重要的假设。问题中的空格不重要是什么意思?要搜索的字符串的一部分是
,blahblah,
。我认为可以公平地假设OP想要搜索
blahblah
,而不是
bl啊
。如果我错了,我相信他/她会纠正我的。
var exists = $.inArray(searchTerm, $('input').val().split(',')) != -1;