如何验证用户名是否以字母开头并且仅包含字母数字字符?

时间:2009-08-20 03:11:09

标签: javascript regex jquery-validate

我正在使用Jquery Validation

目前,我有一个用户名,我要为此用户名验证的是:

  • 不是空白
  • 状况
  • 没有空格,我添加了这个方法:

    $.validator.addMethod("nowhitespace", function(value, element) {
         return this.optional(element) || /^\S+$/i.test(value);
    }, "  No white space please");
    
  • 字母数字

    $.validator.addMethod("alphanumeric", function(value, element) {
         return this.optional(element) || /^[a-zA-Z0-9]+$/i.test(value);
    }, "  Alphanumeric. Only numbers and alphabet allowed");
    
  • 第一个字符必须是字母,不能是数字。

我被困在最后的验证中。如何编写正则表达式来验证第一个字符必须是字母?

顺便说一句:

没有空白似乎有问题。我尝试了我的脚本,1允许空格,但不允许2个空格,为什么?

2 个答案:

答案 0 :(得分:9)

使用

/^[A-Za-z][A-Za-z0-9]+$/

用于字母数字方法。

匹配任何由字母后跟一个或多个字母数字字符组成的字符串。这假定不允许使用单个字符的用户名。如果您确实要允许单字符用户名,请将模式更改为:

/^[A-Za-z][A-Za-z0-9]*$/

这样,就不需要单独检查第一个字符了。顺便说一句,这也应该避免了对空格检查的需要,因为完全由字母数字字符组成的字符串不能按照定义包含任何空格。

答案 1 :(得分:2)

value.substr(0, 1).match(/[A-Za-z]/) != null