Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jquery自定义验证非数字_Javascript_Regex_Validation_Jquery Validate - Fatal编程技术网

Javascript Jquery自定义验证非数字

Javascript Jquery自定义验证非数字,javascript,regex,validation,jquery-validate,Javascript,Regex,Validation,Jquery Validate,我正在尝试为jquery编写一个自定义验证函数。规则应该是字段不能仅为数字。我知道如何只写数字或字母,但我希望规则说,值“12345”将失败,但“12345A”将被验证 这是我对非数字的定义 jQuery.validator.addMethod("nonNumeric", function(value, element) { return this.optional(element) || !value.match(/[0-9]+/); },"Only alphabatic charac

我正在尝试为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");
jQuery.validator.addMethod(“noSpace”,函数(值,元素){
返回值.indexOf(“”<0&&value!=“”);
},“请不要留空格”);
jQuery.validator.addMethod(“alpha”,函数(值,元素){
返回此.optional(元素)| |/^[a-z]+$/i.test(值);
},“请给我写信。”);
addMethod(“非数值”,函数(值,元素){
返回此值。可选(元素)| | isNaN(数字(值));
},“字符串不能是数字”);
使用
parseInt
(如果操作数不是严格意义上的数字,则返回NaN),如下所示:

jQuery.validator.addMethod("nonNumeric", function(value, element) {
    return this.optional(element) || !isNaN(parseInt(value));
},"Only alphabatic characters allowed.");
不要使用
=在这种情况下,或者您可以使用


根据肯·布朗宁的评论,
parseInt
在这里可能不合适。请尝试以下方法:

jQuery.validator.addMethod("nonNumeric", function(value, element) {
    return this.optional(element) || !isNaN(Number(value));
},"Only alphabatic characters allowed.");
如下所示使用
parseInt
(如果操作数不是严格意义上的数字,则返回NaN):

jQuery.validator.addMethod("nonNumeric", function(value, element) {
    return this.optional(element) || !isNaN(parseInt(value));
},"Only alphabatic characters allowed.");
不要使用
=在这种情况下,或者您可以使用


根据肯·布朗宁的评论,
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-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()
的更多信息,请查看可以使用的。

/[a-z]/i.test(value)
如果
value
包含a和z之间的任何字母,则返回
true

i
修饰符使测试不区分大小写


有关
.test()
的更多信息,请查看。

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

/[a-z]/i.test(value);
用法


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

/[a-z]/i.test(value);
用法



这里可能不适合使用parseInt:​警惕(!!​parseInt('3x'))​​​​​​​嗯,没错,我会用另一个选项编辑。我不是100%肯定,但是
Number
应该可以。不能在这里耍双重把戏我认为OP希望输入是有效的,如果至少有一个字符是字母顺序的,但我不确定。顺便说一句,你不能使用比较运算符来测试
NaN
,使用
isNaN()
@FelixKling:是的,这就是它要做的,除非我以某种方式颠倒了我的逻辑,并且它只在输入无效时返回,因为如果
Number(value)
等于NaN,这意味着其中有一个字母。啊,对了。。。现在我明白了…我可能会使用类似于
/[a-z]/.test(value)
的东西。或者使用
!isNaN(+value)
。这里可能不适合使用parseInt:​警惕(!!​parseInt('3x'))​​​​​​​嗯,没错,我会用另一个选项编辑。我不是100%肯定,但是
Number
应该可以。不能在这里耍双重把戏我认为OP希望输入是有效的,如果至少有一个字符是字母顺序的,但我不确定。顺便说一句,你不能使用比较运算符来测试
NaN
,使用
isNaN()
@FelixKling:是的,这就是它要做的,除非我以某种方式颠倒了我的逻辑,并且它只在输入无效时返回,因为如果
Number(value)
等于NaN,这意味着其中有一个字母。啊,对了。。。现在我明白了…我可能会使用类似于
/[a-z]/.test(value)
的东西。或者使用
!isNaN(+value)
。如果我理解正确,您希望该值至少包含一个数字字符和一个字母字符?不,基本上是用户名字段,但我不希望用户键入整数来模拟用户ID。所以它至少需要一个字母字符,它不可能全是数字。如果我理解正确,您希望该值至少包含一个数字字符和一个字母字符?不,基本上是用户名字段,但我不希望用户键入整数来模拟用户ID。因此,它至少需要一个字母字符,它不能全是数字。如果使用
i
修饰符,则不需要
A-Z
。。。这就是重点;)这对非ascii字符没有帮助如果您使用的是
i
修饰符,则不需要
A-Z
。。。这就是重点;)这对非ascii字符没有帮助