我正在使用节点js做一个基本的聊天应用程序,我正在尝试向聊天添加命令。
示例:用户可以使用此命令/add name
t = "/add Smith"
var c = t.match(/^\s*([/](?:\S+\d+|add|send))\s+\S+/i);
console.log(c[0])
// '/add Smith'
但我不能得到第三个字:
t = "/send Smith 5000"
var c = t.match(/^\s*([/](?:\S+\d+|add|send))\s+\S+/i);
console.log(c)
// '/send Smith'
//third variable is missing
它仍在c[0]
中给出前两个单词,但我也需要第三个单词。我该如何解决这个问题?
答案 0 :(得分:3)
\S+
将匹配1个或多个非空格,因此只要在Smith
之后找到空格就会停止。使用.+
匹配"send "
之后的所有内容。
var c = t.match(/^\s*([/](?:\S+\d+|add|send))\s+.+/i);
//=> ["/send Smith 5000", "/send"]