Ant Design Vue 添加区分中英文的长度校验功能


Posted in Javascript onJanuary 21, 2020

原本的maxLength属性是不区分全角/半角字符的,对于一些可中英文混合输入地方而言不太合适。所以想找一个可区分全角/半角字符的校验,而且要保证一定的可重用性。

百度搜了一圈都没找到合适的现成的解决方案,所以自己试着基于v-decorator的自定义校验validator实现了一下,核心代码如下:

校验插件

const validators = {
 /**
 * 可区分全角字符/半角字符的长度校验。
 * @param min
 * @param max
 * @returns {Function}
 */
 length({min=0,max=100000000}){
 return function(rule, value,callback){
  //将一个全角字符替换成两个半角字符,以得到真实长度。
  let realLength = value.replace(/[\u0391-\uFFE5]/g,'aa').length;
  realLength <= max && realLength >= min ? callback() : max<100000000 ? callback('输入长度应在'+min+'到'+max+'个字符之间!') : callback('至少应输入'+min+'个字符!');
 }
 }
}
const install = function(Vue, options) {
 Vue.prototype.validators = validators;
}
export default { install }

main.js 安装插件

Vue.use(validators)

添加校验

<a-form-item label="参数值" :labelCol="labelCol" :wrapperCol="wrapperCol">
   <a-input v-decorator="[ 'paraValue', validatorRules.paraValue]" placeholder="请输入参数值"></a-input>
</a-form-item>

validatorRules:{
  paraValue:{rules: [{validator:this.validators.length({max:50})}]}
  }

若是看不懂校验函数的写法,可先了解一下闭包与高阶函数的概念,这里就不多说啦。

总结

以上所述是小编给大家介绍的Ant Design Vue 添加区分中英文的长度校验功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
js Map List 遍历使用示例
Jul 10 Javascript
jquery 按钮状态效果 正常、移上、按下
Aug 12 Javascript
jQuery学习总结之jQuery事件
Jun 30 Javascript
JavaScript实现的encode64加密算法实例分析
Apr 15 Javascript
jQuery实现自动切换播放的经典滑动门效果
Sep 12 Javascript
一道JS前端闭包面试题解析
Dec 25 Javascript
深入理解ECMAScript的几个关键语句
Jun 01 Javascript
快速解决js动态改变dom元素属性后页面及时渲染的问题
Jul 06 Javascript
JavaScript如何一次性展示几万条数据
Mar 30 Javascript
Angular HMR(热模块替换)功能实现方法
Apr 04 Javascript
js实现动态增加文件域表单功能
Oct 22 Javascript
JS+CSS实现过渡特效
Jan 02 Javascript
python虚拟环境 virtualenv的简单使用
Jan 21 #Javascript
详解vue中v-bind:style效果的自定义指令
Jan 21 #Javascript
vue.js iview打包上线后字体图标不显示解决办法
Jan 20 #Javascript
Angular单元测试之事件触发的实现
Jan 20 #Javascript
vue elementui 实现搜索栏公共组件封装的实例代码
Jan 20 #Javascript
D3.js 实现带伸缩时间轴拓扑图的示例代码
Jan 20 #Javascript
阿望教你用vue写扫雷小游戏
Jan 20 #Javascript
You might like
php中对2个数组相加的函数
2011/06/24 PHP
使用ThinkPHP自带的Http类下载远程图片到本地的实现代码
2011/08/02 PHP
php生成短网址示例
2014/05/05 PHP
PHP输出一个等腰三角形的方法
2015/05/12 PHP
PHP+fiddler抓包采集微信文章阅读数点赞数的思路详解
2019/12/20 PHP
PHP rsa加密解密算法原理解析
2020/12/09 PHP
JS 页面计时器示例代码
2013/10/28 Javascript
JavaScript常用标签和方法总结
2015/09/01 Javascript
jquery插件uploadify多图上传功能实现代码
2016/08/12 Javascript
seajs学习教程之基础篇
2016/10/20 Javascript
Restify中接入Socket.io报Error:Can’t set headers的错误解决
2017/03/28 Javascript
vue-hook-form使用详解
2017/04/07 Javascript
Bootstrap popover 实现鼠标移入移除显示隐藏功能方法
2018/01/24 Javascript
vue todo-list组件发布到npm上的方法
2018/04/04 Javascript
详解基于Vue2.0实现的移动端弹窗(Alert, Confirm, Toast)组件
2018/08/02 Javascript
nodejs中用npm初始化来创建package.json的实例讲解
2018/10/10 NodeJs
vue动态绑定class选中当前列表变色的方法示例
2018/12/19 Javascript
Jquery实现无缝向上循环滚动列表的特效
2019/02/13 jQuery
在微信小程序中使用图表的方法示例
2019/04/25 Javascript
vue中使用element组件时事件想要传递其他参数的问题
2019/09/18 Javascript
vue抽出组件并传值实例
2020/07/31 Javascript
[33:42]LGD vs OG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
[51:53]完美世界DOTA2联赛决赛日 Inki vs LBZS 第二场 11.08
2020/11/10 DOTA
[05:37]DOTA2-DPC中国联赛 正赛 Elephant vs iG 选手采访
2021/03/11 DOTA
python编程之requests在网络请求中添加cookies参数方法详解
2017/10/25 Python
python并发编程之线程实例解析
2017/12/27 Python
Python爬虫通过替换http request header来欺骗浏览器实现登录功能
2018/01/07 Python
Django外键(ForeignKey)操作以及related_name的作用详解
2019/07/29 Python
阿联酋航空官方网站:Emirates
2017/10/17 全球购物
英国绿色商店:Natural Collection
2019/05/03 全球购物
Carmen Sol官网:购买果冻鞋、手袋和配件
2021/01/01 全球购物
党校个人自我鉴定范文
2014/03/28 职场文书
社区党员志愿服务活动方案
2014/08/18 职场文书
技术入股协议书
2016/03/22 职场文书
Golang实现AES对称加密的过程详解
2021/05/20 Golang
Mysql关于数据库是否应该使用外键约束详解说明
2021/10/24 MySQL