簡體   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