2012-10-30 48 views

回答

5

首先,您應該使用支持西里爾字符(例如UTF-8)的編碼,用於頁面和腳本。然後,你可以使用正則表達式來檢查:

$("input").keyup(function() { 
    this.value = this.value.replace(/[^а-яё]/i, ""); 
});​ 

DEMO:http://jsfiddle.net/CSjkP/

+0

我會躲得遠遠的從任何非拉丁文的範圍。在這個特定的例子中,你已經從正確的字母中排除了「ё」。 –

+0

@ OlegV.Volkov感謝'Ё',我跳過了它。關於範圍,字符範圍表示編碼表值的基本範圍,其中字母總是按照它的順序排列。 'Ё'字符是附加標誌,可以手動添加。 – VisioN

+0

這當然有效,但當用戶「複製 - >過去」文本或按下並按住任何鍵時不起作用。 – SGh

3

使用任何可用的許多JS形式驗證的(一個簡單的搜索將讓你打)用正則表達式,只有符合西里爾:

/^[абвгдеёжзийклмнопрстуфхцчшщьыъэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯ]*$/ 

也許你也想添加空格或數字出現。