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

Javascript 如何验证用户名以字母开头且仅包含字母数字字符?,javascript,regex,jquery-validate,Javascript,Regex,Jquery Validate,我正在使用 目前,我有一个用户名,我要验证此用户名的内容是: 不空白 可用性 没有空格,我添加此方法: $.validator.addMethod("nowhitespace", function(value, element) { return this.optional(element) || /^\S+$/i.test(value); }, " No white space please"); 字母数字 $.validator.addMethod("alphanumeri

我正在使用

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

  • 不空白
  • 可用性
  • 没有空格,我添加此方法:

    $.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个空格,为什么?

使用

value.substr(0, 1).match(/[A-Za-z]/) != null
对于字母数字方法

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

/^[A-Za-z][A-Za-z0-9]*$/
这样,就不需要对第一个字符进行单独检查。顺便说一句,这也应该避免空白检查的需要,因为完全由字母数字字符组成的字符串根据定义不能包含任何空白。

使用

对于字母数字方法

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

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

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

Um。。这是jquery还是一个普通的javascript方法?嗯。。这是jquery还是普通的javascript方法?这个答案比我的答案快了几秒钟,模式完全相同。它所做的是要求[a-Za-z]中有一个字符,然后要求后面跟着[a-Za-z0-9]中的一个或多个字符。如果希望用户名仅为一个字母,可以将“+”改为“*”。奇怪的是,无法选择您的答案作为最佳答案。我的浏览器有问题吗?当然,我会一直尝试,直到它接受。我应该说“谢谢”,你解决了我可能需要几天才能解决的问题。谢谢:()(())))这个答案比我的答案快了几秒钟,模式完全一样。它所做的是要求[a-Za-z]中有一个字符,然后要求后面跟着[a-Za-z0-9]中的一个或多个字符。如果希望用户名仅为一个字母,可以将“+”改为“*”。奇怪的是,无法选择您的答案作为最佳答案。我的浏览器有问题吗?当然,我会一直尝试,直到它接受。我应该说“谢谢”,你解决了我可能需要几天才能解决的问题。谢谢:()(())))您的无空格regexp乍一看似乎是正确的…?为什么要为您的模式指定
i
?jQuery/JavaScript不提供regex标准组名,如[ALPHNUM]?您的无空格regexp乍一看似乎是正确的…?为什么要为您的模式指定
i
?jQuery/JavaScript不提供regex标准组名,如[ALPHNUM]?