我通过网站生成了以下代码。我正在寻找的是脚本针对一组关键字扫描文本变量,并且如果找到任何关键字,则将其传递给变量。并且,如果找到两个关键字,则两个关键字都用连字符连起来并传递给变量。我还需要动态设置“ var str”。例如,“ var str == VAR10”。 VAR10将具有要搜索的动态文本的关键字。
var re = /Geo|Pete|Rob|Nick|Bel|Sam|/g;
var str = 'Sam maybe late today. Nick on call. ';
var m;
if ((m = re.exec(str)) !== null) {
if (m.index === re.lastIndex) {
re.lastIndex++;
}
}
在上面的代码中,Sam和Nick是我想要连字并传递给VAR10的两个关键字。
最佳答案
如果找到两个关键字,则两个关键字都用连字符连起来并传递给
变量
为了清楚起见,请尝试将此更新更新为原始代码:
var re = /Geo|Pete|Rob|Nick|Bel|Sam/g;
var str = 'Sam maybe late today. Nick on call. ';
var m;
var VAR10 = ""; // holds the names found
if ((m = re.exec(str)) !== null) {
var name1 = m;
if ((m = re.exec(str)) !== null) {
var name2 = m;
// Two names were found, so hyphenate them
// Assign name1 + "-" + name2 to the var that you want
VAR10 = name1 + "-" + name2;
} else {
// In the case only one name was found:
// Assign name1 to the var that you want
VAR10 = name1;
}
}
注意,改变
var re = /Geo|Pete|Rob|Nick|Bel|Sam|/g;
至
var re = /Geo|Pete|Rob|Nick|Bel|Sam/g;
这是更新的演示:http://jsfiddle.net/7zg2hnt6/1/