JavaScript实现手机号码 3-4-4格式并控制新增和删除时光标的位置


Posted in Javascript onJune 02, 2020

JavaScript实现手机号码 3-4-4格式

手机号实现3-4-4格式相对来说还是比较简单的,监听input事件,实时的获取手机号码,然后根据手机号码的长度做截取和拼接的操作,即可实现手机格式的处理,实现格式的处理之后,我们还需要支持在指定光标进行新增和删除操作的时候光标不移动到最后面,因为手机号的格式使我们重置的,监听input事件重新赋值之后光标会移动到最后一位,解决这个问题的办法就是记录光标的位置并在value值格式重置之后重新设置光标的位置,好了,思路就是这样的,话不多说,直接上代码

// An highlighted block
 <input
  ref="inputRef"
  class="life-input"
  v-model="value"
  :maxlength="13"
  :placeholder="哈哈哈哈哈"
  :pattern="[0-9]*"
  @input="onInput"
 />

// javascript
onInput(){
 val = this.value.replace(/\D/g, '').substring(0, 11);
 const nowIndex = this.getCursortPosition(this.$refs.inputRef);
 if (valueLen > 3 && valueLen < 8) {
 this.value = `${val.substr(0, 3)} ${val.substr(3)}`;
 } else if (valueLen >= 8) {
 this.value = `${val.substr(0, 3)} ${val.substr(
  3,
  4
  )} ${val.substr(7)}`;
 } else {
 this.value = val;
 }
 // 重新赋值之后设置光标的位置
this.setCurIndex(nowIndex, this.curInputObj.value);
},

 getCursortPosition(element) {
 let CaretPos = 0;
 if (document.selection) {
 // 支持IE
 element.focus();
 const Sel = document.selection.createRange();
 Sel.moveStart('character', -element.value.length);
 CaretPos = Sel.text.length;
 } else if (element.selectionStart || element.selectionStart === '0'){
 // 支持firefox
 CaretPos = element.selectionStart;
 }
 return CaretPos
 },

 setCurIndex(nowIndex, value) {
 const len = value.length;
 setTimeout(() => {
 let pos = nowIndex;
 // 新增操作
 if (len > this.oldLen) {
  if (nowIndex === 4 || nowIndex === 9) {
  pos += 1;
  }
 } else if (len > this.oldLen) {
  // 删除操作
  if (nowIndex === 4 || nowIndex === 9) {
  pos -= 1;
  }
 }
 this.$refs.inputRef.selectionStart = pos;
 this.$refs.inputRef.selectionEnd = pos;
 this.oldLen = this.curInputObj.value.length;
 }, 0);
 },

总结

到此这篇关于JavaScript实现手机号码 3-4-4格式并控制新增和删除时光标的位置的文章就介绍到这了,更多相关js 手机号码3-4-4格式内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
通过正则格式化url查询字符串实现代码
Dec 28 Javascript
在父页面调用子页面的JS方法
Sep 29 Javascript
重写document.write实现无阻塞加载js广告(补充)
Dec 12 Javascript
javascript实现点击单选按钮链接转向对应网址的方法
Aug 12 Javascript
jQuery使用eraser.js插件实现擦除、刮刮卡效果的方法【附eraser.js下载】
Apr 28 jQuery
vue中eventbus被多次触发以及踩过的坑
Dec 02 Javascript
JavaScript 中的 this 工作原理
Jun 20 Javascript
详解Vue.directive 自定义指令
Mar 27 Javascript
VUE 实现复制内容到剪贴板的两种方法
Apr 24 Javascript
微信小程序常见页面跳转操作简单示例
May 01 Javascript
利用d3.js实现蜂巢图表带动画效果
Sep 03 Javascript
适合前端Vue开发童鞋的跨平台Weex的使用详解
Oct 16 Javascript
2020京东618叠蛋糕js脚本(亲测好用)
Jun 02 #Javascript
vue项目在webpack2实现移动端字体自适配功能
Jun 02 #Javascript
React实现类似淘宝tab居中切换效果的示例代码
Jun 02 #Javascript
实例分析javascript中的异步
Jun 02 #Javascript
vue + node如何通过一个Txt文件批量生成MP3并压缩成Zip
Jun 02 #Javascript
js简单实现自动生成表格功能示例
Jun 02 #Javascript
JS中准确判断变量类型的方法
Jun 01 #Javascript
You might like
用PHP制作的意见反馈表源码
2007/03/11 PHP
php5 apache 2.2 webservice 创建与配置(java)
2011/01/27 PHP
win2003服务器使用WPS的COM组件的一些问题解决方法
2012/01/11 PHP
php自动载入类用法实例分析
2016/06/24 PHP
一个可以随意添加多个序列的tag函数
2009/07/21 Javascript
JQuery上传插件Uploadify使用详解及错误处理
2010/04/27 Javascript
高亮显示web页表格行的javascript代码
2010/11/19 Javascript
js 限制数字 js限制输入实现代码
2012/12/04 Javascript
node.js中格式化数字增加千位符的几种方法
2015/07/03 Javascript
Jquery attr()方法 属性赋值和属性获取详解
2016/04/15 Javascript
URL中“#” “?” &amp;“”号的作用浅析
2017/02/04 Javascript
JS实现仿UC浏览器前进后退效果的实例代码
2017/07/17 Javascript
基于vue中对鼠标划过事件的处理方式详解
2018/08/22 Javascript
在mpvue框架中使用Vant WeappUI组件库的注意事项【推进】
2019/06/09 Javascript
微信小程序image图片加载完成监听
2019/08/31 Javascript
关于layui导航栏不展示下拉列表的解决方法
2019/09/25 Javascript
使用node.JS中的url模块解析URL信息
2020/02/06 Javascript
js实现金山打字通小游戏
2020/07/24 Javascript
[03:23:49]2016.12.17日完美“圣”典全回顾
2016/12/19 DOTA
[42:20]Secret vs Liquid 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
Python中除法使用的注意事项
2014/08/21 Python
python如何为被装饰的函数保留元数据
2018/03/21 Python
基于python实现学生管理系统
2018/10/17 Python
利用pyuic5将ui文件转换为py文件的方法
2019/06/19 Python
python 下 CMake 安装配置 OPENCV 4.1.1的方法
2019/09/30 Python
python属于跨平台语言码
2020/06/09 Python
CSS3伪类选择器:nth-child()
2009/04/02 HTML / CSS
英国和爱尔兰最大的地毯零售商:Kukoon
2018/12/17 全球购物
波兰灯具、照明和LED购物网站:Lampy.pl
2019/03/11 全球购物
英国最大的自有市场,比亚马逊便宜:Flubit
2019/03/19 全球购物
介绍一下MYSQL常用的优化技巧
2012/10/25 面试题
20年同学聚会感言
2014/02/03 职场文书
校园安全检查制度
2014/02/03 职场文书
新闻编辑专业毕业自荐书范文
2014/02/05 职场文书
2013年军训通讯稿
2014/02/05 职场文书
校园会短篇的广播稿
2014/10/21 职场文书