2012-04-19 167 views
1

我有英文單詞搜索字段(字典樣式)。此代碼確保它只接受字母和不帶特殊字符的條款。在輸入中允許輸入西班牙特殊字符

$('#q').keyup(function(){ 
    $(this).val($(this).val().replace(/[^a-zA-Z ]/g,function(str){return '';})); 
}); 

最近我還不得不實行西班牙語單詞搜索字段。我應該只接受A-Z A-Z,當然這些還有:

ñáéíóúü

ÑÁÉÍÓÚ

就是這樣。有任何想法嗎?謝謝。

回答

2

對於不區分大小寫的正則表達式,您可以使用標記i ..我剛剛添加了您的特殊字符。

$('#q').keyup(function(){ 
    $(this).val($(this).val().replace(/[^a-zñáéíóúü ]/ig,function(str){return '';})); 
}); 
+0

注:我也不得不加上「和¨到允許的字符列表。如果我不這樣做,用戶將永遠無法輸入像á這樣的內容。在西班牙語鍵盤上,您首先必須添加'...然後a,它會自動轉換爲' – andufo 2012-04-19 16:13:27

+0

我注意到這裏存在一個問題:s ...如果用戶使用光標鍵更正單詞(可以說用戶按下LEFT)keyup()方法理解爲也應該檢查該鍵。任何解決方法? – andufo 2012-04-19 16:28:55

+0

我不喜歡這些關鍵控件,我更喜歡檢查變化的輸入。此外,這個解決方案拒絕將複製的迴文字符複製到該字段中。 – tarmaq 2012-04-19 16:40:23

2

試試這個

/[^a-zñáéíóúüA-ZÑÁÉÍÓÚ]/g 
+0

我選擇@ tarmaq的解決方案,因爲它使用i標誌 – andufo 2012-04-19 16:15:42