Javascript 执行验证时的jQuery问题

Javascript 执行验证时的jQuery问题,javascript,jquery,jquery-validate,Javascript,Jquery,Jquery Validate,我正在尝试使用jQuery验证文件进行表单验证。这让我很难过。。。 这是一个简单的表单,我现在要做的是检查用户名输入: 不能从数字开始 不能只是数字 不能以符号开头 不能只是符号 应该是这样的示例:username=panchi15_u15或jack或a77 这是html代码段: <div class="row-fluid"> <div class="span6 "> <div class="control-group">

我正在尝试使用jQuery验证文件进行表单验证。这让我很难过。。。 这是一个简单的表单,我现在要做的是检查用户名输入:

  • 不能从数字开始
  • 不能只是数字
  • 不能以符号开头
  • 不能只是符号
  • 应该是这样的示例:username=panchi15_u15或jack或a77
这是html代码段:

  <div class="row-fluid">
      <div class="span6 ">
        <div class="control-group">
          <label class="control-label">Usuario<span class="required">*</span></label>
          <div class="controls">
          <input type="text" name="username" value="" class="m-wrap span8" required/>
        </div>
      </div>
  </div>
如果用户输入了有效的用户名,则输入旁边会出现一个绿色的ok图标。否则,输入框应为红色,并带有图例,说明错误所在

我做错了什么


更新:

我会回答我的问题,以备将来有人需要。我可以找出我做错了什么

在一个jQuery验证文件additional-methods.js中,有一个与word模式相关联的函数:

jQuery.validator.addMethod("pattern", function(value, element, param) {
if (this.optional(element)) {
    return true;
}
if (typeof param === 'string') {
    param = new RegExp('^(?:' + param + ')$');
}
return param.test(value);
 }, "Invalid format.");
如您所见,它接收3个参数:value、element和param。Param是为匹配代码行中已有的预定义元素而定义的正则表达式:

param = new RegExp('^(?:' + param + ')$');
在我创建的js文件中,您可以在我的问题上看到,仅使用了以下内容:

   pattern: "[A-z](([\._\-][A-z0-9])|[A-z0-9])*[a-z0-9_]*"

就这样。

你能用你的代码创建一个JSFIDLE吗?很抱歉,我需要调用两个javascript文件才能做到这一点,我相信JSFIDLE做不到。你可以用外部javascript文件创建一个JSFIDLE。JSFIDLE左侧有一个外部资源字段page@arun15thmay你是对的。我在做什么it@Limon您可以使用模式
[a-zA-Z][0-9a-zA-Z.]*
您可以在最后一个字符类中添加更多符号,我只是添加了,因为我不知道您想要哪个。该模式匹配以数字开头的内容。我以为你不想要这个?@towr是的,然后我意识到了这一点,并改为:模式:“[A-z](([\.\U\-][A-z0-9])|[A-z0-9])*[A-z0-9]*”你可以将其简化为
[A-z]([\.\U\-]?[A-z0-9])*[A-z0-9]*
操作符给出0或1repeats@towr谢谢你的耐心。我要用另一个问题,在Z和a之间有一些符号,你的意思是当你做
[a-Z]
的时候包括这些符号吗?
param = new RegExp('^(?:' + param + ')$');
   pattern: "[A-z](([\._\-][A-z0-9])|[A-z0-9])*[a-z0-9_]*"