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