2012-02-06 49 views
-1

我這樣做了,只有以'/ msg'或'/ logout'開頭的消息纔會提交。indexOf不能正常工作?

但是,用戶仍然可以發送消息!我的代碼有問題嗎?

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

我甚至嘗試用'!=='替換'!=',但它仍然無效。 – Dav 2012-02-06 19:00:27

+0

我認爲你的邏輯很好..嘗試追蹤'msg'的值來查看它是否檢出。 – paislee 2012-02-06 19:35:29

+0

請不要在標題中添加標籤。謝謝。 – Will 2012-02-07 17:23:44

回答

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

該問題指出只有帶有「/ msg」和「/ logout」的消息__starting__是可接受的(「indexOf」返回0)。您的解決方案將在「msg」中接受這些字符串_anywhere_ ... – paislee 2012-02-06 19:16:16

+0

P.S. - 這與OP的代碼一樣工作,但接受更多消息,因此不正確。我相信這個問題必須在別處。 – paislee 2012-02-06 19:26:51

+0

原來我的代碼確實有效。問題出在我忽略向你展示的代碼中,但是我修復了它。無論如何感謝您的幫助,並且很高興您也抓住了它。 :) 8小時內,我接受答案或自己回答或回答? – Dav 2012-02-06 19:39:11

0

原來我的代碼確實有效。問題出在我忽略向你展示的代碼中,但是我修復了它。

感謝您的幫助。 :)