2011-10-26 55 views
0

我的代碼如下,它輸出用戶在文本框中輸入的內容。如果用戶輸入數字以外的任何內容,它應該輸出一個錯誤消息。不過,我很困惑如何做到這一點。坦率地說,我會解決它能夠檢測到輸入的第一個字母是否是B,但我不能完全弄清楚這一點,而前一個選項是首選。在JavaScript中,如何檢測輸入是否包含字母?

HTML

<label for="bannerID">Banner ID: B</label><input type="text" name="bannerID" id="bannerID" onkeyup="showBannerID()" value="" /><br /> 

<p id="bannerOutput"></p> 

的JavaScript

function showBannerID() { 

var textInput = document.getElementById('bannerID').value; 

if (textInput.length == 0) { 
    document.getElementById('bannerOutput').innerHTML = "<strong class=\"error\">Field can't be empty!</strong>"; 
} 
else if (textInput.charAt(0) == "B") { 
    document.getElementById('bannerOutput').innerHTML = "<strong class=\"error\">Please omit the B! It's not necessary.</strong> 
} 
else { 
    document.getElementById('bannerOutput').innerHTML = "Your Banner ID is: <strong>B" + textInput + "</strong>."; 
} 
} 
+1

您的代碼包含語法錯誤。你知道嗎? (else-if-B塊的報價未關閉)。 –

回答

0

您可以請使用isNaN() (沒有一個數字)作爲一個條件。

isNaN(123)會給出錯誤,isNaN(「hello」)會給出真實的。

+0

完美!現在有什麼辦法可以實現這一點,以及如果他們把B作爲第一個字母來實現,還有其他的方法嗎? –

2

您可以使用正則表達式來搜索數字以外的東西:

if (/[^\d]/.test(textInput)) { 
    /* error stuff */ 
} 
+0

我得看看這個,我們還沒有學過正則表達式。 進一步的問題:有沒有辦法來檢測他們輸入的第一個數字是否是B,並輸出錯誤消息? –

+0

@Doug你的'charAt'測試應該爲此工作。沒有得到你期望的結果? – sdleihssirhc

相關問題