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];