正则表达式的条件是
现在我正在使用这个,但它不起作用:
$('.name').keyup(function() {
this.value = this.value.replace(/[^A-Za-z]/g,'');
});
答案 0 :(得分:1)
我认为你需要使用多个正则表达式来获得你想要的结果。此外,我同意@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/
答案 1 :(得分:1)
这是正则表达式,它将获取仍符合您要求的最小子字符串。
var reg = /[A-Za-z]{2}[A-Za-z]*[ ]?[A-Za-z]*/;
您可以通过将返回的子字符串与原始字符串进行比较来验证用户名的输入。我将在这里创建一个jsFiddle:http://jsfiddle.net/cjC5k/