详解微信小程序input标签正则初体验


Posted in Javascript onAugust 18, 2018

开篇废话

在开发过程中经常遇到这样的需求:用户只能输入数字并且只保留小数点两位。虽然我们可以在提交表单的时候进行验证,但是体验不是很好。下面我主要使用了小程序input标签的bindinput方法对输入的值进行监听,然后进行正则匹配。

1. input标签

微信小程序input标签自带type=digit属性,可以调起带有小数点的数字键盘,maxlength属性可以控制我们输入字符的个数,然后我们给input标签绑定bindinput方法。

<input type="digit" bindinput="regInput" maxlength="15"/>

2. 绑定监听事件

bindinput方法可以监听到当前输入框的值,类似于onchange事件,但不太一样。通过e.detail.value可以获取到input的值,return返回的字符串可以替换掉输入的字符串。

3. 正则匹配

匹配正则通过则返回所有字符,不通过则去掉最后一个不匹配的字符返回。

/*正则匹配*/
regInput(e){
  if(/^(\d?)+(\.\d{0,2})?$/.test(e.detail.value)){
    return e.detail.value;
  }else {
    return e.detail.value.substring(0,e.detail.value.length-1);
  }
}

结束

这个正则表达式不是很完美,欢迎一起来优化。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQueryPad 实用的jQuery测试工具(支持IE,chrome,FF)
May 22 Javascript
SWFObject 2.1以上版本语法介绍
Jul 10 Javascript
js获取客户端外网ip的简单实例
Nov 21 Javascript
浅谈Javascript 执行顺序
Dec 18 Javascript
jquery默认校验规则整理
Mar 24 Javascript
JQuery简单实现锚点链接的平滑滚动
May 03 Javascript
javascript中setTimeout使用指南
Jul 26 Javascript
jquery自适应布局的简单实例
May 28 Javascript
利用原生JS与jQuery实现数字线性变化的动画
Feb 24 Javascript
十大 Node.js 的 Web 框架(快速提升工作效率)
Jun 30 Javascript
Webpack按需加载打包chunk命名的方法
Sep 22 Javascript
详解在Vue.js编写更好的v-for循环的6种技巧
Apr 14 Javascript
vue实现键盘输入支付密码功能
Aug 18 #Javascript
记录一篇关于redux-saga的基本使用过程
Aug 18 #Javascript
Vue实现6位数密码效果
Aug 18 #Javascript
JavaScript实现淘宝京东6位数字支付密码效果
Aug 18 #Javascript
详解Angular6 热加载配置方案
Aug 18 #Javascript
Vue+element-ui 实现表格的分页功能示例
Aug 18 #Javascript
vue下history模式刷新后404错误解决方法
Aug 18 #Javascript
You might like
php设计模式之单例模式实例分析
2015/02/25 PHP
win平台安装配置Nginx+php+mysql 环境
2016/01/12 PHP
Yii2分页的使用及其扩展方法详解
2016/05/23 PHP
php自定义函数实现统计中文字符串长度的方法小结
2017/04/15 PHP
Laravel 微信小程序后端实现用户登录的示例代码
2019/11/26 PHP
JavaScript 创建对象和构造类实现代码
2009/07/30 Javascript
jQuery实现原理的模拟代码 -6 代码下载
2010/08/16 Javascript
jQuery+CSS 实现随滚动条增减的汽水瓶中的液体效果
2011/09/26 Javascript
window.navigate 与 window.location.href 的使用区别介绍
2013/09/21 Javascript
使用JavaScript判断图片是否加载完成的三种实现方式
2014/05/04 Javascript
IE和Firefox之间在JavaScript语法上的差异
2016/04/22 Javascript
Bootstrap开关(switch)控件学习笔记分享
2016/05/30 Javascript
Ubuntu 16.04 64位中搭建Node.js开发环境教程
2016/10/19 Javascript
深入理解JavaScript定时机制
2016/10/27 Javascript
Bootstrap基本插件学习笔记之轮播幻灯片(23)
2016/12/08 Javascript
AngularJS开发教程之控制器之间的通信方法分析
2016/12/25 Javascript
vue如何引入sass全局变量
2018/06/28 Javascript
解决betterScroll在vue中存在图片时,出现拉不动的问题
2018/09/27 Javascript
JavaScript canvas实现文字时钟
2021/01/10 Javascript
[03:39]2015国际邀请赛主赛事首日精彩回顾
2015/08/05 DOTA
python获取当前时间对应unix时间戳的方法
2015/05/15 Python
Python实现的使用telnet登陆聊天室实例
2015/06/17 Python
Python爬取网易云音乐热门评论
2017/03/31 Python
python+selenium实现登录账户后自动点击的示例
2017/12/22 Python
Python字典的基本用法实例分析【创建、增加、获取、修改、删除】
2019/03/05 Python
python列表生成器迭代器实例解析
2019/12/19 Python
使用TFRecord存取多个数据案例
2020/02/17 Python
Casetify官网:自制专属手机壳、iPad护壳和Apple Watch手表带
2018/05/09 全球购物
奥地利领先的在线药房:SHOP APOTHEKE
2019/10/07 全球购物
初中物理教学反思
2014/01/14 职场文书
中秋节主持词
2014/04/02 职场文书
门面房租房协议书
2014/08/20 职场文书
解除聘用合同证明书范本
2014/09/11 职场文书
2014年体育部工作总结
2014/11/13 职场文书
投资入股协议书
2016/03/22 职场文书
关于MybatisPlus配置双数据库驱动连接数据库问题
2022/01/22 Java/Android