检查字符串的前x个字母

时间:2013-01-30 00:01:41

标签: javascript

有没有一种简单的方法来检查JavaScript中的字符串是否与某个东西匹配,例如:

让我们说你想检查第一个单词:

/admin this is a message

然后使用JS查找/admin以便我可以在聊天窗口中指示消息?

4 个答案:

答案 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,在没有匹配的情况下,这比indexOfslice快两倍,但在匹配时则慢一些。因此,如果你希望主要有非匹配,那么它会更快,它会出现。

答案 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
}