正则表达式检查单词的句子

时间:2014-12-08 17:19:33

标签: javascript regex

我正在使用节点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]中给出前两个单词,但我也需要第三个单词。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

\S+将匹配1个或多个非空格,因此只要在Smith之后找到空格就会停止。使用.+匹配"send "之后的所有内容。

var c = t.match(/^\s*([/](?:\S+\d+|add|send))\s+.+/i);
//=> ["/send Smith 5000", "/send"]