我尝试制作用户可以输入字符串!exchange
然后输入一个字词的内容。例如,如果交换后的单词匹配单词huntsman,我希望它可以做一件事,而另一件事则用于另一个单词。
我已经尝试过了
var req = msg.match(/^!exchange/i); //msg is the string that I'm testing
但这并不奏效。我也试过了
var req = msg.match(/^!exchange \b/i);
但我得到了同样的结果。有人可以帮忙吗?
答案 0 :(得分:2)
要在!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>
答案 1 :(得分:0)
听起来你想要这样的东西:
var msg = "!exchange apple";
msg.match(/^!exchange (.*)/i);
(返回["!exchange apple", "apple"]
)
String.match()返回原始字符串的数组,后跟任何匹配的组。你需要将“!exchange”之后的每个单词作为一个组匹配,以便将它们放回到数组中。