validator js驗證器


轉自:https://github.com/jaywcjlove/validator.js

輕量級的JavaScript表單驗證,字符串驗證。沒有依賴,支持UMD

導入js庫

<script type="text/javascript" src="<%=path %>/validate/jquery-1.6.2.min.js"></script>
<script type="text/javascript" src="<%=path %>/validate/jquery.validate.min.js"></script>

 

 

簡單.js驗證

// 字符串驗證 var validator = require('validator.tool'); var v = new validator(); v.isEmail('wowohoo@qq.com'); v.isIp('192.168.23.3'); v.isFax(''); // 表單驗證 var a = new validator('example_form',[ {...} ],function(obj,evt){ if(obj.errors){ // 判斷是否錯誤 } })

表單驗證:

<form id="example_form"> <div> <label for="email">郵箱驗證</label> <input type="email" name="email" id="email" class="form-control" placeholder="Email"> </div> <div class="form-group"> <label for="passworld">密碼:</label> <input type="passworld" name="passworld" id="passworld" class="form-control" placeholder="輸入密碼"> </div> <div class="form-group"> <label for="repassworld">確認密碼:</label> <input type="repassworld" name="repassworld" id="repassworld" class="form-control" placeholder="輸入密碼"> </div> </form> <script type="text/javascript">  var validator = new Validator('example_form',[  {  //name 字段  name: 'email',  display:"你輸入的不{{email}}是合法郵箱|不能為空|太長|太短",  // 驗證條件  rules: 'is_emil|max_length(12)'  // rules: 'valid_email|required|max_length(12)|min_length(2)'  },{  name:"passworld",  display:"必填",  rules: 'required'  },{  name:"repassworld",  display:"密碼不一致",  rules: 'same(passworld)'  }  ],function(obj,evt){  if(obj.errors){  // 判斷是否錯誤  }  }) </script>

 

說明文檔:

new Validator(formName, option, callback)

forname:  是標簽中<form> 中的 id 或者 name 的值,如上面的example_form

option:

 

  • name -> input 中 name 對應的值

  • display -> 驗證錯誤要提示的文字 {{這個中間是name對應的值}}

  • rules -> 一個或多個規則(中間用|間隔)

    • is_email -> 驗證合法郵箱
    • is_ip -> 驗證合法 ip 地址
    • is_fax -> 驗證傳真
    • is_tel -> 驗證座機
    • is_phone -> 驗證手機
    • is_url -> 驗證URL
    • is_money -> 金額格式驗證
    • is_english -> 字母驗證⚠️
    • is_chinese -> 中文驗證
    • is_percent -> 驗證百分比⚠️
    • required -> 是否為必填
    • max_length -> 最大字符長度
    • min_length -> 最小字符長度
    • same(field) -> 指定字段內容是否相同
    • different(field) -> 拒絕與某個字段相等,比如登錄密碼與交易密碼情況
    • contains(field) -> 直接判斷字符串是否相等
    • accepted(field) -> 用於服務條款,是否同意時相當有用,不限制checkbox與radio,有可能submit button直接附帶value情況
例如:
{ //name 字段 name: 'email', display:"你輸入的不{{email}}是合法郵箱|不能為空|太長|太短", // 驗證條件 rules: 'is_email|max_length(12)' // rules: 'valid_email|required|max_length(12)|min_length(2)' }

自定義正則:以regexp_開始
{
  //name 字段 name: 'sex', // 對應下面驗證提示信息 display:"請你選擇性別{{sex}}|請輸入數字", //自定義正則`regexp_num` regexp_num:/^[0-9]+$/, // 驗證條件,包括應用自定義正則`regexp_num` rules: 'required|regexp_num' }


remote:URL 異步驗證
使用ajax方式進行驗證,默認會提交當前驗證的值到遠程地址,如果需要提交其他的值,可以使用data選項
示例一:
remote: "check-email.php"
示例二:
remote: {
    url: "check-email.php",     //后台處理程序
    type: "post",               //數據發送方式
    dataType: "json",           //接受數據格式   
    data: {                     //要傳遞的數據
        username: function() {
            return $("#username").val();
        }
    }
}

 

自定義驗證方法
addMethod(name, method, message)
// 中文字兩個字節
jQuery.validator.addMethod(
    "byteRangeLength", 
    function(value, element, param) {
        var length = value.length;
        for(var i = 0; i < value.length; i++){
            if(value.charCodeAt(i) > 127){
                length++;
            }
        }
        return this.optional(element) || (length >= param[0] && length <= param[1]);   
    }, 
    $.validator.format("請確保輸入的值在{0}-{1}個字節之間(一個中文字算2個字節)")
);

// 郵政編碼驗證   
jQuery.validator.addMethod("isZipCode", function(value, element) {   
    var tel = /^[0-9]{6}$/;
    return this.optional(element) || (tel.test(value));
}, "請正確填寫您的郵政編碼");

 





默認規則:
(1)、required:true               必輸字段
(2)、remote:"remote-valid.jsp"   使用ajax方法調用remote-valid.jsp驗證輸入值
(3)、email:true                  必須輸入正確格式的電子郵件
(4)、url:true                    必須輸入正確格式的網址
(5)、date:true                   必須輸入正確格式的日期,日期校驗ie6出錯,慎用
(6)、dateISO:true                必須輸入正確格式的日期(ISO),例如:2009-06-23,1998/01/22 只驗證格式,不驗證有效性
(7)、number:true                 必須輸入合法的數字(負數,小數)
(8)、digits:true                 必須輸入整數
(9)、creditcard:true             必須輸入合法的信用卡號
(10)、equalTo:"#password"        輸入值必須和#password相同
(11)、accept:                    輸入擁有合法后綴名的字符串(上傳文件的后綴)
(12)、maxlength:5                輸入長度最多是5的字符串(漢字算一個字符)
(13)、minlength:10               輸入長度最小是10的字符串(漢字算一個字符)
(14)、rangelength:[5,10]         輸入長度必須介於 5 和 10 之間的字符串")(漢字算一個字符)
(15)、range:[5,10]               輸入值必須介於 5 和 10 之間
(16)、max:5                      輸入值不能大於5
(17)、min:10                     輸入值不能小於10

轉自  https://www.cnblogs.com/linjiqin/p/3431835.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM