條件的正則表達式是正則表達式來命名
- 只有信
- 空間允許2性格特徵輸入
- 只有一個空間,允許不超過一個只有後,請幫助我,我很新的jQuery
現在我用這一個,但它不工作:
$('.name').keyup(function() {
this.value = this.value.replace(/[^A-Za-z]/g,'');
});
條件的正則表達式是正則表達式來命名
現在我用這一個,但它不工作:
$('.name').keyup(function() {
this.value = this.value.replace(/[^A-Za-z]/g,'');
});
我認爲你需要使用多個正則表達式才能得到你想要的結果。另外,我同意@nnnnnn用戶會發現自動更換煩人。
這裏是工作的,雖然我猜它可能被優化的解決方案:
$(function() {
$('#test').keyup(function(){
//Remove all characters except letters and whitespace
this.value = this.value.replace(/[^A-Za-z\s]/g,'');
//Replace all instance of One or more whitespaces with a space
this.value = this.value.replace(/\s+/g,' ');
//Replace a space that happens after zero or one characters
this.value = this.value.replace(/^([a-zA-Z]{0,1})(\s)([a-zA-Z]+)/,'$1$3');
//Replaces any spaces that occur after the first space
this.value = this.value.replace(/^([a-zA-Z]{2,})(\s+)([a-zA-Z]+)(\s+)/,'$1$2$3');
});
});
下面是一個說明它的工作一個的jsfiddle。 http://jsfiddle.net/mattpaulsen/sSUhn/3/
thanx for @mpaulse – Anudeep
這裏是正則表達式,將抓住仍然符合您的要求的最小子字符串。
var reg = /[A-Za-z]{2}[A-Za-z]*[ ]?[A-Za-z]*/;
您可以通過比較其返回的子與原來的字符串驗證用戶名的輸入。我將創建一個這樣做的jsFiddle:http://jsfiddle.net/cjC5k/
「charecter」你的意思是「字母」? _你輸入的所有東西都是一個字符。你是否試圖說只允許大小寫字母和空格,但只有在字符串開頭至少有兩個字母時才允許使用空格? (不管你有什麼要求,請注意,'keyup'處理程序本身是不夠的,因爲用戶可以使用鼠標或編輯菜單拖放或剪切/粘貼/刪除。) – nnnnnn
ya對不起,對不起 – Anudeep
注而且改變用戶輸入的字段的內容也會使他們惱火,特別是如果他們試圖在字段的開頭編輯並且代碼不停地移動光標。我建議在離開該字段時測試格式,並顯示錯誤消息或刪除該點的無效字符。 – nnnnnn