Jquery Validate自定義驗證規則,一個漢字等於兩個字元長度
使用Jquery validate
時寫的一些東西,在這裡做個筆記
在使用 Jquery validate
的minlength
和maxlength
進行文字框內容長度驗證的時候,對於一個漢字的長度檢測結果是1個字元長度,
在這裡我想讓一個漢字的長度為2個字元長度,下面記錄一下實現方法。
首先我們定義一個需求,比如下面文字框,我們想讓輸入的使用者名稱長度不能超過10個字元(一個漢字為兩個字元長度)。
使用者名稱:<input type="text" name="username" id="username ">
然後自定義校驗規則,程式碼如下:
/* 自定義驗證規則,內容的最大長度,一個漢字等於兩個字元 */
$.validator.addMethod("stringMaxLength",function(value,element,params){
var length = value.length;
for( var i = 0; i < value.length; i++ ) {
if( value.charCodeAt(i) > 19967 ) {
length++;
}
}
return length>params[0]?false:true;
},"最大長度不能超過{0}個字元,一個漢字為兩個字元")
上面程式碼大體結構是這樣的:
$.validator.addMethod(rulesName,function,msg)
rulesName
:規則的名稱,這裡是stringMaxLength(自己定義的)
function
:是規則的具體實現函式,下面會具體介紹這個函式以及它的三個引數,這裡是function(value,element,params)
msg
:該規則的校驗錯誤資訊,這裡是:“最大長度不能超過{0}
個字元,一個漢字為兩個字元“,這個{0}
,是什麼意思呢?往下看。
function(value,element,params) {
//這裡寫校驗的具體實現
}
它有三個固定引數,value,element,params
(固定引數,固定引數,固定引數,重要的事情說三遍!!!敲黑板了)
結合我們上面的需求,三個引數的含義如下:
value
:是我們在文字框中輸入的內容,即校驗的目標
element
:是校驗的元素,input
這個元素,這裡用不到該元素的值(胸弟!忽略它)
params
:校驗引數(我自己取得名字,哈哈……嗝,我沒有具體去查官方的稱
它是一個陣列,內容是我們設定校驗規則時傳入的引數,這裡我們應該傳入引數為10
(內容最大長度為10),所以params[0]
就是10。
現在回答上面遺留的一問題,就是{0}
,他在這裡其實代表的就是params[0]
,回答完畢。引數具體怎麼傳進來,下面就是了。
假設我們上面需求中的文字框所在的form
表單的id
為login
, 檢驗的具體實現
$.validator.addMethod("stringMaxLength",function(value,element,params){
var length = value.length;
for( var i = 0; i < value.length; i++ ) {
if( value.charCodeAt(i) > 19967 ) {
length++;
}
}
return length>params[0]?false:true;
},"最大長度不能超過{0}個字元,一個漢字為兩個字元")
怎麼判斷是漢字呢,我們是遍歷的value
,value.charCodeAt(i)
返回的是value
中對應下標為i
的字元的unicode
編碼,
這個返回值是整數,它的範圍是0-65535
(10進位制),而漢字的unicode
編碼的範圍是19968-40869
(10進位制)。
所以根據這個範圍判斷如果是漢字,再在value.length
的基礎上加1
。
下面是使用這個驗證規則:
/* 定義表單驗證規則 */
$().ready(function(){
$("#login").validate
rules:{
username:{
stringMaxLength:["10"] //引數必須這麼傳進去,如果想自定義它的校驗錯誤資訊,設定方法和其它規則一樣
}
}
});
});
相關文章
- jQuery Validate新增自定義驗證規則jQuery
- jQuery Validate驗證規則實質jQuery
- jQuery Validate驗證規則的使用jQuery
- jQuery Validate驗證規則使用演示jQuery
- jQuery Validate自定義驗證錯誤資訊jQuery
- Laravel 自定義表單驗證-自定義驗證規則Laravel
- Validator | validate 驗證規則
- 正則匹配案例(驗證是否是一個有效數字、驗證手機號、驗證郵箱、匹配一個漢字範圍、匹配一個漢字姓名)...
- 關於laravel使用自定義驗證規則後某些規則不生效Laravel
- 得到字串 位元組 長度 中文 兩個字元 英文一個字元字串字元
- HTML5 pattern自定義驗證規則HTML
- Laravel 自定義驗證規則的問題Laravel
- mongoose使用validate驗證, 獲取自定義驗證資訊Go
- jQuery Validate自定義表單元素驗證通過和不通過的樣式jQuery
- jQuery Validate checkbox和radio驗證jQuery
- jquery.validate 表單驗證jQuery
- [Laravel] 自定義配置你的密碼驗證規則Laravel密碼
- 【Laravel】 自定義配置你的密碼驗證規則Laravel密碼
- jQuery Validate驗證除錯開關jQuery除錯
- jQuery Validate驗證觸發的方式jQuery
- jQuery Validate忽略指定元素不驗證jQuery
- jQuery Validate非同步ajax方式驗證jQuery非同步
- jQuery Validate驗證上傳檔案大小jQuery
- jQuery Validate對select下拉選單驗證jQuery
- jQuery Validate限定輸入字串的長度jQuery字串
- Laravel, vee-validate, 阿波羅 自定義表單時時驗證Laravel
- jQuery Validate自定義錯誤資訊顯示位置jQuery
- 隨機生成一個指定長度的驗證碼隨機
- jQuery Validate驗證確認密碼是否相同jQuery密碼
- jQuery Validate表單驗證基本流程介紹jQuery
- 使用jakarta.validation自定義校驗規則
- Laravel 自定義規則Laravel
- jQuery Validate獲取驗證錯誤的數目jQuery
- zuul 自定義路由規則Zuul路由
- 自定義一個簡單的資料模型驗證器類,可用於各類驗證場景,待後續完善模型
- 漢文博士新增《通用規範漢字表》等多個字表
- 輸入兩個長度相同的字串,比較兩個數在相同位置的字元是否相同字串字元
- PHP字串學習之如何返回漢字或混合字元的長度PHP字串字元