2010-04-15 48 views
1

我有一個用戶輸入框中的字符串值。我必須弄清楚最後一個字符是否是輸入鍵(換行符)。如何比較字符串在最後使用jquery/javascript有一個輸入鍵?

那就是代碼。我在這裏檢查最後一個字符是否有空格。現在我還必須檢查最後一個字符是否是回車鍵(回車或換行)。我怎樣才能做到這一點?

var txt = $get("<%= txtUserText.ClientID %>"); 
if (txt.value.substring(txt.value.length -1) !== ' ' || <checkifLastCharIsEnterKey>) 
    //my code to take action 

****我不認爲我需要一個按鍵或keyup事件,因爲這上面這段代碼是不是在用戶輸入時調用。**

回答

2

您可以使用正則表達式:

if(/\s$/.test(txt.value)) 

這將檢查的最後一個字符是任何空白字符(包括標籤,換行符)。

編輯

要分別檢查換行符:

if(/\r|\n$/.test(txt.value)) { 
    //Newline 
} else if(/\s$/.test(txt.value)) { 
    //Any other whitespace character 
} 
+0

實際上,我需要檢查空白和換行符分開。 如果空白爲真這樣做 如果換行符是true這樣做 – Jango 2010-04-15 13:53:19

+0

然後您可以檢查最後一個字符是否等於''\ r''或''\ n''。你可以使用'charAt'方法。 – SLaks 2010-04-15 13:59:38

+0

它在瀏覽器FF和IE8中工作(在兼容性視圖模式下)。但在IE8瀏覽器中有一個概率...打入enter..code它陷阱它...你打空白代碼它得到它......但如果你按Enter鍵並給出空白以及..... newline條件是真的(這很好)...但它不會回來......我的意思是現在,無論你在輸入框中輸入什麼字符......這個換行符條件仍然是真的:(它只發生在IE8中。 ANy clue? – Jango 2010-04-15 14:28:13

2

那麼你可以使用正則表達式:

if (/[\r\n]$/.test(txt)) { /* it has a newline at the end */ } 

如果你想擺脫它:

txt = txt.replace(/[\r\n]$/, ''); 

如果你想擺脫所有「空白」的字符串的結尾:

txt = txt.replace(/\s*$/, ''); 
+0

對不起的人...它沒有爲我用方括號工作... – Jango 2010-04-15 14:22:29

相關問題