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 getMonth()日期函数的值域是0-11
Feb 15 Javascript
js对象数组按属性快速排序
Jan 31 Javascript
jquery中的 $(&quot;#jb51&quot;)与document.getElementById(&quot;jb51&quot;) 的区别
Jul 26 Javascript
js showModalDialog参数的使用详解
Jan 07 Javascript
JS函数的定义与调用方法推荐
May 12 Javascript
BootStrap与Select2使用小结
Feb 17 Javascript
jQuery修改DOM结构_动力节点Java学院整理
Jul 05 jQuery
vue 动态改变静态图片以及请求网络图片的实现方法
Feb 07 Javascript
详解Node使用Puppeteer完成一次复杂的爬虫
Apr 18 Javascript
使用Vue组件实现一个简单弹窗效果
Apr 23 Javascript
js调用设备摄像头的方法
Jul 19 Javascript
深入浅析vue中cross-env的使用
Sep 12 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如何控制用户对图片的访问 PHP禁止图片盗链
2016/03/25 PHP
Laravel使用RabbitMQ的方法示例
2019/06/18 PHP
LazyLoad 延迟加载(按需加载)
2010/05/31 Javascript
JavaScript与Image加载事件(onload)、加载状态(complete)
2011/02/14 Javascript
JavaScript中instanceof与typeof运算符的用法及区别详细解析
2013/11/19 Javascript
php析构函数的具体用法小结
2014/03/11 Javascript
JS实现点击复选框将按钮或文本框变为灰色不可用的方法
2015/08/11 Javascript
js密码强度校验
2015/11/10 Javascript
Bootstrap所支持的表单控件实例详解
2016/05/16 Javascript
AngularJs实现分页功能不带省略号的代码
2016/05/30 Javascript
详解PHP中pathinfo()函数导致的安全问题
2017/01/05 Javascript
浅谈js for循环输出i为同一值的问题
2017/03/01 Javascript
fetch 使用及如何接收JS传值
2017/11/11 Javascript
jQuery Validate插件ajax方式验证输入值的实例
2017/12/21 jQuery
vue2.0使用swiper组件实现轮播的示例代码
2018/03/03 Javascript
vue 中filter的多种用法
2018/04/26 Javascript
JavaScript防止全局变量污染的方法总结
2018/08/02 Javascript
微信小程序在线客服自动回复功能(基于node)
2019/07/03 Javascript
JS中async/await实现异步调用的方法
2019/08/28 Javascript
js实现视图和数据双向绑定的方法分析
2020/02/05 Javascript
Python代码的打包与发布详解
2014/07/30 Python
python3使用requests模块爬取页面内容的实战演练
2017/09/25 Python
Django视图和URL配置详解
2018/01/31 Python
Tensorflow 训练自己的数据集将数据直接导入到内存
2018/06/19 Python
简单了解python 邮件模块的使用方法
2019/07/24 Python
VSCode中自动为Python文件添加头部注释
2019/11/14 Python
新建文件时Pycharm中自动设置头部模板信息的方法
2020/04/17 Python
给ubuntu18安装python3.7的详细教程
2020/06/08 Python
Python如何实现Paramiko的二次封装
2021/01/30 Python
Java的基础面试题附答案
2016/01/10 面试题
Linux如何为某个操作添加别名
2015/02/05 面试题
会计实习生工作总结的自我评价
2013/10/07 职场文书
出纳员的岗位职责
2014/02/22 职场文书
先进教育工作者事迹材料
2014/12/23 职场文书
房地产置业顾问岗位职责
2015/04/11 职场文书
重阳节座谈会主持词
2015/07/03 职场文书