有没有一种简单的方法来检查JavaScript中的字符串是否与某个东西匹配,例如:
让我们说你想检查第一个单词:
/admin this is a message
然后使用JS查找/admin
以便我可以在聊天窗口中指示消息?
答案 0 :(得分:2)
一种方法是使用indexOf()来查看/ admin是否在pos 0。
var msg = "/admin this is a message";
var n = msg.indexOf("/admin");
如果n = 0,那么你知道/ admin是在消息的开头。
如果消息中不存在该字符串,则n等于-1。
答案 1 :(得分:1)
或者,
string.match(/^\/admin/)
根据http://jsperf.com/matching-initial-substring,在没有匹配的情况下,这比indexOf
或slice
快两倍,但在匹配时则慢一些。因此,如果你希望主要有非匹配,那么它会更快,它会出现。
答案 2 :(得分:0)
您可以使用Array.slice(beg, end)
:
var message = '/admin this is a message';
if (message.slice(0, 6) === '/admin') {
var adminMessage = message.slice(6).trim();
// Now do something with the "adminMessage".
}
答案 3 :(得分:0)
要实现这一点,您可以查找“特殊命令字符”/
,如果找到,则获取文本直到下一个空格/行尾,检查命令列表以及是否匹配,做一些特别的行动
var msg = "/admin this is a message", command, i;
if (msg.charAt(0) === '/') { // special
i = msg.indexOf(' ', 1);
i===-1 ? i = msg.length : i; // end of line if no space
command = msg.slice(1, i); // command (this case "admin")
if (command === 'admin') {
msg = msg.slice(i+1); // rest of message
// .. etc
} /* else if (command === foo) {
} */ else {
// warn about unknown command
}
} else {
// treat as normal message
}