正则表达式命名

时间:2013-02-02 06:02:35

标签: jquery regex

正则表达式的条件是

  1. 只有信件
  2. 只有在输入2个字符后才允许
  3. 空格
  4. 只允许一个空格不超过一个,请帮助我,我是jQuery的新手
  5. 现在我正在使用这个,但它不起作用:

    $('.name').keyup(function() {  
        this.value = this.value.replace(/[^A-Za-z]/g,'');    
    });
    

2 个答案:

答案 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/

相关问题