Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.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或js按逗号分隔的值匹配或搜索字符串_Javascript_Jquery - Fatal编程技术网

Javascript 通过jquery或js按逗号分隔的值匹配或搜索字符串

Javascript 通过jquery或js按逗号分隔的值匹配或搜索字符串,javascript,jquery,Javascript,Jquery,我想通过js数组将字符串部分匹配/搜索到一个字符串。下面是我的字符串和数组示例 var str = "host, gmail, yahoo"; var search = 'new@gmail.com'; 我已经做了如下尝试: if( str.split(',').indexOf(search) > -1 ) { console.log('Found'); } 对于字符串new@gmail.com 我在使用本文件时参考了: 它应该与gmail的字符串匹配new@gmail.com

我想通过js数组将字符串部分匹配/搜索到一个字符串。下面是我的字符串和数组示例

var str = "host, gmail, yahoo";
var search = 'new@gmail.com';
我已经做了如下尝试:

if( str.split(',').indexOf(search) > -1 ) {
   console.log('Found');
}
对于字符串
new@gmail.com

我在使用本文件时参考了:

它应该与gmail的字符串匹配new@gmail.com

为了获得结果,您需要从搜索字符串中提取gmail

您可以使用regex实现这一点:

search.match( /\S+@(\S+)\.\S+/)[1]
var str=“主机、gmail、雅虎、qwegmail”;
var搜索new@gmail.com';
if(str.split(',').indexOf(search.match(/\S+@(\S+)\。\S+/)[1])>-1){
log(search+':find');
}否则{
log(搜索+':未找到');
}
搜寻asd@qwegmail.com';
if(str.split(',').indexOf(search.match(/\S+@(\S+)\。\S+/)[1])>-1){
log(search+':find');
}否则{
log(搜索+':未找到');

}
这里有几个问题。首先,您的输入字符串在逗号后有空格,但您只按逗号分割,因此您将得到
'gmail'
作为一个值,这将破坏
indexOf()
结果。请删除空格,或使用
split(',')

其次,您需要循环通过
split()
操作生成的数组,并分别检查
search
字符串中的每个值。您当前也在向后使用
indexOf()
,即,您正在查找
new@gmail.com
gmail
中。考虑到这些问题,请尝试以下方法:

var str=“主机、gmail、雅虎”;
var搜索new@gmail.com';
str.split(',).forEach(函数(主机){
if(search.indexOf(host)!=-1){
console.log('Found');
}

});如您所见,
str
中没有包含
search
值的子字符串。所以你需要颠倒逻辑。像这样的

var str=“主机、gmail、雅虎”;
var搜索new@gmail.com';
var res=str.split(',).filter(函数(el){
返回search.indexOf(el)>-1;
});

控制台日志(res)用此代码声明数组,这样就不需要用“,”分隔它

var str = new Array ("host","gmail","yahoo");
要查找元素,请使用以下内容

    for (i = 0; i < str.length; ++i)
    {
         val = str[i];
         if (val.substring(0) === "gmail")
         {
              res = val;
              break;
         }
    }
    //Use res (result) here
for(i=0;i

注意:这是我的第一个答案,如果有一些错误,请原谅我…

由于
split
方法返回一个数组,您必须遍历该数组并检查匹配

下面是一个演示:

//将gmail.com添加到字符串中,以便您可以看到更多匹配的结果(gmail和gmail.com)。
var str=“host,gmail,yahoo,gmail.com”,
搜寻new@gmail.com',
splitArr=str.replace(/(\,\s+)/g',,')。split(','),
/*上面的replace方法用于删除逗号后的空格。str变量保持不变,因为“replace”方法不会更改原始字符串,而是返回被替换的字符串*/
l=拆分长度,
i=0;
对于(;i-1){
log('在'+i+'索引处找到了一个匹配项:'+splitArr[i]+'.\n');
}

}
为什么要使用
jQuery
执行此任务?由于jQuery用于
DOM
操作任务。@因此使用js或jQuery,anything@ShivSinghindexOf将检查数组中是否存在精确匹配。您正在尝试匹配字符串的一部分,请尝试使用regexYes@Varun我知道,但如何reg@ShivSingh这是没有正则表达式的,但如果您需要匹配的位置或值,您必须更改它。谢谢回答,但您的回答仅适用于*@gmail.com,但我想在任何地方比赛,比如asdgmail@asd.com或asd@qwegmail.com或asd@asegmailase.com