-1

Я сделал это, так что будут отправляться только сообщения, начинающиеся с '/ msg' или '/ logout'.indexOf Не работает?

Но пользователи все равно могут отправлять сообщения! Что-то не так с моим кодом?

if ((msg.indexOf("/msg") != 0) && (msg.indexOf("/logout") != 0)) 
{ 
    return; 
} 
+0

Я даже попытался заменить '! =' На '! ==', и он все еще не работал. – Dav

+0

Я думаю, что ваша логика хорошая. Попробуйте 'trace'у значение' msg', чтобы узнать, проверяется ли он. – paislee

+0

Пожалуйста, не помещайте теги в свой заголовок. Благодарю. – Will

ответ

4

indexOf вернет -1, если String не найден в противном случае он будет возвращать индекс найден, который> = 0

Так что ваш тест должен быть:

if ((msg.indexOf("/msg") < 0) && (msg.indexOf("/logout") < 0)) 
{ 
return; 
} 

или

if ((msg.indexOf("/msg") == -1) && (msg.indexOf("/logout") == -1)) 
{ 
return; 
} 
+0

В вопросе утверждается, что допустимы только сообщения __starting__ с «/ msg» и «/ logout» ('indexOf' возвращает 0). Ваше решение примет эти строки _anywhere_ в 'msg' ... – paislee

+0

P.S. - это работает так же, как и код OP, но принимает БОЛЬШЕ сообщений и, следовательно, неверно. Я считаю, что проблема должна лежать в другом месте. – paislee

+0

Оказывается, мой код действительно сработал. Проблема была в коде, который я забыл показать, но я исправил его. Спасибо за помощь в любом случае, и да, рад, что ты тоже ее поймал. :) Через 8 часов я принимаю ответ или отвечаю сам или что? – Dav

0

Оказывается, мой код действительно работал. Проблема была в коде, который я забыл показать, но я исправил его.

Спасибо за помощь в любом случае. :)

Смежные вопросы