[英]Jquery custom validation non numeric
我正在尝试为jquery写一个自定义验证功能。 规则应该是该字段不能仅是数字。 我知道如何只写数字或只写字母,但是我想让规则说“ 12345”的值会失败,但是“ 12345A”会得到验证
这就是我非数字的
jQuery.validator.addMethod("nonNumeric", function(value, element) {
return this.optional(element) || !value.match(/[0-9]+/);
},"Only alphabatic characters allowed.");
但我不知道如何不只使用数字。
工作脚本
这是三个可能有用的规则,最后一个是回答这个问题的规则。
jQuery.validator.addMethod("noSpace", function(value, element) {
return value.indexOf(" ") < 0 && value != "";
}, "No spaces please");
jQuery.validator.addMethod("alpha", function(value, element) {
return this.optional(element) || /^[a-z]+$/i.test(value);
},"Letters only please.");
jQuery.validator.addMethod("nonNumeric", function(value, element) {
return this.optional(element) || isNaN(Number(value));
},"String cannot be numeric");
使用如下的parseInt
(如果操作数严格来说不是数字,则返回NaN):
jQuery.validator.addMethod("nonNumeric", function(value, element) {
return this.optional(element) || !isNaN(parseInt(value));
},"Only alphabatic characters allowed.");
在这种情况下,请勿使用!=
,否则您可能会遇到这种不愉快的情况 。
根据Ken Browning的评论,在这里parseInt
可能不合适。 尝试以下方法:
jQuery.validator.addMethod("nonNumeric", function(value, element) {
return this.optional(element) || !isNaN(Number(value));
},"Only alphabatic characters allowed.");
将您的正则表达式更改为:
(/.*[a-zA-Z]+.*/)
在您的代码上:
编辑1:
jQuery.validator.addMethod("nonNumeric", function(value, element) {
return this.optional(element) || value.match(/.*[a-zA-Z]+.*/);
},"Only alphabatic characters allowed.");
我认为这个正则表达式应该足够了
/[a-z]/i.test(value);
用法
jQuery.validator.addMethod("nonNumeric", function(value, element) {
return this.optional(element) || !(/[a-zA-Z]/i.test(value));
},"Only alphabatic characters allowed.");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.