有没有一种简单的方法来检查 JavaScript 中的字符串是否与某个事物匹配,例如:
假设您要检查具有以下内容的第一个单词:
/admin this is a message
然后用JS查找,/admin
以便我可以在我的聊天窗口中引导消息??
有没有一种简单的方法来检查 JavaScript 中的字符串是否与某个事物匹配,例如:
假设您要检查具有以下内容的第一个单词:
/admin this is a message
然后用JS查找,/admin
以便我可以在我的聊天窗口中引导消息??
一种方法是使用 indexOf() 查看 /admin 是否位于 pos 0。
var msg = "/admin this is a message";
var n = msg.indexOf("/admin");
如果 n = 0,那么您知道 /admin 位于消息的开头。
如果消息中不存在该字符串,则 n 将等于 -1。
或者,
string.match(/^\/admin/)
根据http://jsperf.com/matching-initial-substringindexOf
,这比任何一个或slice
在没有匹配的情况下快两倍,但在匹配时速度较慢。因此,如果您希望主要有不匹配,这会更快,它会出现。
你可以使用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".
}
为此,您可以查找“特殊命令字符” /
,如果找到,获取文本直到下一个空格/行尾,根据您的命令列表检查此内容,如果匹配,请执行一些特殊操作
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
}