Arrays 如何使用java脚本搜索字符串中的多个文本?
我有一个字符串,一个要搜索的单词数组:Arrays 如何使用java脚本搜索字符串中的多个文本?,arrays,string,javascript,Arrays,String,Javascript,我有一个字符串,一个要搜索的单词数组: strng = "I have been working here since last six months" text = ["since", "till", "until"] result = "since" 我想搜索数组中的每个单词,在strng中,当在strng中找到任何单词时,必须将其分配给result。怎么做? 我正在使用.search()搜索单个单词,但是如何搜索多个单词呢?请帮忙。 我是个新手。你可以循环你的关键字数组,也可以使用正则表
strng = "I have been working here since last six months"
text = ["since", "till", "until"]
result = "since"
我想搜索数组中的每个单词,在strng
中,当在strng中找到任何单词时,必须将其分配给result。怎么做?我正在使用
.search()
搜索单个单词,但是如何搜索多个单词呢?请帮忙。我是个新手。你可以循环你的关键字数组,也可以使用正则表达式。前者简单,后者优雅;-) 你的正则表达式应该是“/since | till | till/”,但我现在不是100%确定。如果您打算使用正则表达式,您应该研究一下正则表达式,这里有一个入门: 编辑:刚刚试过,刷新了我的记忆。最简单的解决方案是使用.match(),而不是search()。可以归结为一行:
strng.match(/since|till|until/) // returns ["since"]
使用.match()将为您提供一个包含模式所有匹配项的数组,在本例中,第一个也是唯一的匹配项是该数组的第一个元素 您可以像这样使用
.search()
循环浏览文本中的每个项目
for (var i=0; i < text.length; i++)
{
if (-1 != strng.search(text[i]))
{
result = text[i];
break;
}
}
for(变量i=0;i
您可以这样做:
var result;
for(var x = 0; x < text.length; x++){
if(strng.indexOf(text[x]) > -1){
result = text[x];
break;
}
}
alert(result);
var结果;
对于(var x=0;x-1){
结果=文本[x];
打破
}
}
警报(结果);
这里的工作示例:像这样做
strng = "I have been working here since last six months";
text = ["since", "till", "until"];
results = []; // make result as object
for(var i=0; i<=text.length; i++){
if(strng.indexOf(text[i]) != -1)
results.push(text[i]);
}
strng=“我从过去六个月以来一直在这里工作”;
text=[“自”、“至”、“至”];
结果=[];//以结果为对象
对于(var i=0;i我认为正则表达式是解决这个问题的简单方法。
使用match()而不是search()
如果你把它写成
strng = "I have been working here since last six months"
text = /(since)|(till)|(here)/
result= strng.match(text); // result will have an array [since,since,]
正确的解决办法是写
result=strng.match(text)[0];
result=strng.match(text)[0];