繁体   English   中英

jQuery自定义验证非数字

[英]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)

如果value包含a和z之间的任何字母,则返回true

i修饰符使测试用例不敏感。

有关.test()更多信息,请查看MDN文档

我认为这个正则表达式应该足够了

/[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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM