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 相关文章推荐
javascript实现的鼠标链接提示效果生成器代码
Jun 28 Javascript
jquery 1.4.2发布!主要是性能与API
Feb 25 Javascript
基于jQuery的左右滚动实现代码
Dec 03 Javascript
jQuery实现友好的轮播图片特效
Jan 12 Javascript
第七章之菜单按钮图标组件
Apr 25 Javascript
用jQuery获取table中行id和td值的实现代码
May 19 Javascript
js实现兼容PC端和移动端滑块拖动选择数字效果
Feb 16 Javascript
Vue.js实现移动端短信验证码功能
Mar 29 Javascript
使用OPENLAYERS3实现点选的方法
Sep 24 Javascript
详谈js对url进行编码和解码(三种方式的区别)
Aug 16 Javascript
使用vue-cli脚手架工具搭建vue-webpack项目
Jan 14 Javascript
如何使用three.js 制作一个三维的推箱子游戏
Jul 29 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 daddslashes()和 saddslashes()有哪些区别分析
2012/10/26 PHP
一款简单实用的php操作mysql数据库类
2014/12/08 PHP
ThinkPHP设置禁止百度等搜索引擎转码(简单实用)
2016/02/15 PHP
Yii2中Restful API原理实例分析
2016/07/25 PHP
Yii框架 session 数据库存储操作方法示例
2019/11/18 PHP
jquery 日期分离成年月日的代码
2010/05/14 Javascript
Jquery调用webService远程访问出错的解决方法
2010/05/21 Javascript
javascript动画对象支持加速、减速、缓入、缓出的实现代码
2012/09/30 Javascript
用js实现控件的隐藏及style.visibility的使用
2013/06/14 Javascript
JS获取客户端IP地址、MAC和主机名的7个方法汇总
2014/07/21 Javascript
Node.js中HTTP模块与事件模块详解
2014/11/14 Javascript
jquery+css3实现网页背景花瓣随机飘落特效
2015/08/17 Javascript
javascript实现瀑布流加载图片原理
2016/02/02 Javascript
JavaScript中push(),join() 函数 实例详解
2016/09/06 Javascript
vue和webpack项目构建过程常用的npm命令详解
2018/06/15 Javascript
浅谈React Event实现原理
2018/09/20 Javascript
Vue2 添加数据可视化支持的方法步骤
2019/01/02 Javascript
Nginx设置为Node.js的前端服务器方法总结
2019/03/27 Javascript
原生js实现购物车
2020/09/23 Javascript
Python模块包中__init__.py文件功能分析
2016/06/14 Python
virtualenv实现多个版本Python共存
2017/08/21 Python
Python基于最小二乘法实现曲线拟合示例
2018/06/14 Python
Python函数装饰器实现方法详解
2018/12/22 Python
总结Python图形用户界面和游戏开发知识点
2019/05/22 Python
Tensorflow训练模型越来越慢的2种解决方案
2020/02/07 Python
Python实现初始化不同的变量类型为空值
2020/06/02 Python
浅谈Python xlwings 读取Excel文件的正确姿势
2021/02/26 Python
Russell Stover巧克力官方网站:美国领先的精美巧克力制造商
2016/11/27 全球购物
英国时尚运动品牌的合集:The Sports Edit
2017/12/20 全球购物
应届生新闻编辑求职信
2013/11/19 职场文书
毕业生自我鉴定
2013/12/04 职场文书
房地产工程部经理岗位职责
2015/04/09 职场文书
我的中国梦主题教育活动总结
2015/05/07 职场文书
农业项目投资意向书
2015/05/09 职场文书
运动会观后感
2015/06/09 职场文书
教学副校长工作总结
2015/08/13 职场文书