Javascript 执行验证时的jQuery问题
我正在尝试使用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">
- 不能从数字开始
- 不能只是数字
- 不能以符号开头
- 不能只是符号
- 应该是这样的示例:username=panchi15_u15或jack或a77
<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_]*"