在正则表达式中搜索单词

Search a regular expression for a word

本文关键字:单词 搜索 正则表达式      更新时间:2023-09-26

我正在尝试让用户输入一个字符串!exchange,然后再输入一个单词。例如,如果交换后的单词与huntsman匹配,我希望它做一件事,另一件事用于不同的单词。

我试过做

var req = msg.match(/^!exchange/i); //msg is the string that I'm testing

但这行不通。我也试过

var req = msg.match(/^!exchange 'b/i); 

但我得到了同样的结果。有人能帮忙吗?

要获取!exchange之后的单词,请使用捕获组:

/^!exchange's+('w+)/i

现在req[1]将包含在!exchange之后的单词。

function doit(input) {
  var msg = input.value;
  var req = msg.match(/^!exchange's+('w+)/i);
  if (req) {
    document.getElementById("result").textContent = req[1];
  }
}
<input type="text" id="input" onchange="doit(this)">
<br>Word is <span id="result"></span>

听起来你想要这样的东西:

var msg = "!exchange apple"; msg.match(/^!exchange (.*)/i);

(返回["!exchange apple", "apple"]

match()返回一个原始字符串的数组,后跟任何匹配的组。您需要将"!exchange"后面的每个单词作为一个组进行匹配,以使它们回到数组中。