我通过网站生成了以下代码。我正在寻找的是脚本针对一组关键字扫描文本变量,并且如果找到任何关键字,则将其传递给变量。并且,如果找到两个关键字,则两个关键字都用连字符连起来并传递给变量。我还需要动态设置“ 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/

07-25 23:55