Javascript 通过jquery或js按逗号分隔的值匹配或搜索字符串
我想通过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
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