validate 自定義 正整數+負整數+0 的驗證

正文

今天在作表單驗證的時候發現,validate默認的驗證規則 :html

digits:true 必須輸入整數jquery

是隻能輸入正整數的。
而公司項目中表單一直用digits:true,也沒發現異常,直到今天,那個數據是能夠輸入負數的,測試才發現,輸入了負整數,表單驗證提示 必須輸入整數! git

難道 負整數 不算是 整數 嗎?web

因而,我查看了jquery.validate.js的源碼,發現:正則表達式

// http://docs.jquery.com/Plugins/Validation/Methods/digits         
    digits: function( value, element ) {             
      returnthis.optional(element) || /^\d+$/.test(value);         
    },

而正則表達式:測試

驗證非負整數(正整數 + 0) ^d+$ this

驗證非正整數(負整數 + 0) ^((-d+)|(0+))$code

也就是說, jquery.validate.js的源碼 中 digits:true 的確是驗證的非負整數(正整數 + 0);htm

因此,本身寫了個自定義方法,解決了整數(正整數+負整數+0)的驗證:blog

jQuery.validator.addMethod("integer", function (value, element) {

    var tel = /^-?\d+$/g;  //正、負 整數 + 0

    return this.optional(element) || (tel.test(value));

}, "請輸入整數");

資料:

整數 維基百科,自由的百科全書
天然數 維基百科,自由的百科全書
正則表達式 維基百科,自由的百科全書
JS正則表達式驗證數字
最全的經常使用正則表達式大全——包括校驗數字、字符、一些特殊的需求等等

相關文章
相關標籤/搜索