Ant Design Vue 添加區(qū)分中英文的長度校驗(yàn)功能
原本的maxLength屬性是不區(qū)分全角/半角字符的,對(duì)于一些可中英文混合輸入地方而言不太合適。所以想找一個(gè)可區(qū)分全角/半角字符的校驗(yàn),而且要保證一定的可重用性。
百度搜了一圈都沒找到合適的現(xiàn)成的解決方案,所以自己試著基于v-decorator的自定義校驗(yàn)validator實(shí)現(xiàn)了一下,核心代碼如下:
校驗(yàn)插件
const validators = {
/**
* 可區(qū)分全角字符/半角字符的長度校驗(yàn)。
* @param min
* @param max
* @returns {Function}
*/
length({min=0,max=100000000}){
return function(rule, value,callback){
//將一個(gè)全角字符替換成兩個(gè)半角字符,以得到真實(shí)長度。
let realLength = value.replace(/[\u0391-\uFFE5]/g,'aa').length;
realLength <= max && realLength >= min ? callback() : max<100000000 ? callback('輸入長度應(yīng)在'+min+'到'+max+'個(gè)字符之間!') : callback('至少應(yīng)輸入'+min+'個(gè)字符!');
}
}
}
const install = function(Vue, options) {
Vue.prototype.validators = validators;
}
export default { install }
main.js 安裝插件
Vue.use(validators)
添加校驗(yàn)
<a-form-item label="參數(shù)值" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input v-decorator="[ 'paraValue', validatorRules.paraValue]" placeholder="請(qǐng)輸入?yún)?shù)值"></a-input>
</a-form-item>
validatorRules:{
paraValue:{rules: [{validator:this.validators.length({max:50})}]}
}
若是看不懂校驗(yàn)函數(shù)的寫法,可先了解一下閉包與高階函數(shù)的概念,這里就不多說啦。
總結(jié)
以上所述是小編給大家介紹的Ant Design Vue 添加區(qū)分中英文的長度校驗(yàn)功能,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!如果你覺得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
相關(guān)文章
vue中將el-switch值true、false改為number類型的1和0
這篇文章主要介紹了vue中將el-switch值true、false改為number類型的1和0問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-10-10
適用于 Vue 的播放器組件Vue-Video-Player操作
這篇文章主要介紹了適用于 Vue 的播放器組件Vue-Video-Player操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-11-11
vue.js評(píng)論發(fā)布信息可插入QQ表情功能
這篇文章主要為大家詳細(xì)介紹了vue.js評(píng)論發(fā)布信息可插入QQ表情功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08

