2012-03-04 61 views
0

我使用此代碼來檢查頁面上的子字符串值。如何使用javascript檢查子字符串條件

if ((col == 4 || col == 6) && ((text.substr(0, 1) == "%") || (text.substr(0, 1) == "@") || (text.substr(0, 1) == " "))) { 
    GetVariableDescription(pageIndex, row, col, text); 
} 

當我嘗試代碼%0012%00AA@1234@ABDJC
它的工作很好,但是當我進入AAAk1234ASJA
這不是驗證

那是什麼,我在這裏做錯了嗎?這種情況是不正確的?

(text.substr(0, 1) == " ") 
+1

你說的「不確認」是什麼意思?字符串「AAAk」,「1234」和「ASJA」沒有「%」,「@」或「」(空格)作爲他們的第一個字符,所以if條件將是錯誤的。你想讓它成真嗎? – nnnnnn 2012-03-04 05:17:27

+0

做這些值'AAAK,1234,ASJA'包含一個空格作爲前綴? http://jsfiddle.net/g4CJL/1/ – codef0rmer 2012-03-04 06:36:49

回答

1

顯然,這是因爲AAAk第一個字符是不是空格

alert("AAAk".substr(0,1)==" ");​​​​​​ //false 
alert(" AAAk".substr(0,1)==" "); //true 
-1

嘗試使用===而不是==,double等於也會與false匹配空格。

+0

這在一般意義上可能是正確的,但這與問題有什麼關係?顯示的代碼是比較一個字符的字符串與空格,而不是比較'假'... – nnnnnn 2012-03-04 05:19:17

+0

我認爲這將避免在text.substr失敗的情況下的誤判,但你是對的:它不解決他給出的例子。 – 2012-03-04 06:39:58

相關問題