0

JavaScriptの文字列が特定のものと一致するかどうかを確認する簡単な方法はありますか?たとえば、次のようになります。

あなたが持っていた最初の単語をチェックしたいとしましょう:

/admin this is a message

次に、JSを使用して検索/adminし、チャットウィンドウでメッセージを送信できるようにしますか?

4

4 に答える 4

2

1つの方法は、indexOf()を使用して、/adminが位置0にあるかどうかを確認することです。

var msg = "/admin this is a message";
var n = msg.indexOf("/admin");

n = 0の場合、メッセージの先頭に/adminがあったことがわかります。

文字列がメッセージに存在しない場合、nは-1になります。

于 2013-01-30T00:05:01.823 に答える
1

または、

string.match(/^\/admin/)

http://jsperf.com/matching-initial-substringによると、これはどちらindexOfか、または一致がない場合よりも最大2倍高速ですsliceが、一致する場合は遅くなります。したがって、主に不一致があると予想される場合、これはより高速で、表示されます。

于 2013-01-30T07:00:29.950 に答える
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".
}
于 2013-01-30T00:07:51.123 に答える
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
}
于 2013-01-30T00:09:48.517 に答える