条件:

要求:
1.手机号不管是直接输入还是复制粘贴都保持334
2.点击字符中间,光标就在那个位置,点击删除键,光标就随之向前移动一位;同时在光标处添加数字光标往后移动一位


代码如下:

涉及三个知识点:
1、keydown :当按钮被按下时,发生 keydown 事件。
2、keyup:当按钮被松开时,发生 keyup 事件。它发生在当前获得焦点的元素上。
3、paste: 当向 p 元素上粘贴文本内容时执行 JavaScript (注意 contenteditable 设置为 “true”)。
例如:<p contenteditable="true" onpaste="myFunction()">尝试在段落中粘贴内容。</p>

<template><div class="mobile_input_box flex_align_center flex_SB"><input v-model="mobile" type="tel" ref="mobile" maxlength="13" placeholder="请输入手机号"@keyup="keyupPaste" @paste="keyupPaste" @keydown="onKeydown"  /></div>
</template>

<script> export default {data() {return { mobile: "", }},  methods: {onKeydown(e) { var input = e.target;var selectionLeft = input.value.substring(input.selectionStart - 1, input.selectionEnd);var selectionRight = input.value.substring(input.selectionStart, input.selectionEnd + 1);//碰到空格,往前移动一位光标var selectionStart = input.selectionStart;if (e.keyCode === 8 && selectionLeft === " " && selectionRight) {input.selectionStart = selectionStart - 1;input.selectionEnd = input.selectionStart;e.preventDefault();}},keyupPaste(e) { this.formatMobile(e)this.mobile = this.$refs.mobile.value},formatMobile(e) {let val = this.$refs.mobile.value let selStart = this.$refs.mobile.selectionStart let mobileLen = val.lengthlet value = this.getValue(e, val).substr(0, 11) // 获取输入/粘贴内容,并截取前11位let len = value.lengthif (len > 3 && len < 8) {value = value.replace(/^(\d{3})/g, '$1 ')} else if (len >= 8) {value = value.replace(/^(\d{3})(\d{4})/g, '$1 $2 ')}this.$refs.mobile.value = valueif (selStart !== mobileLen) {// 设置光标位置this.$refs.mobile.selectionStart = this.$refs.mobile.selectionEnd = selStart}let aa = this.$refs.mobile.value.replace(/\D/g, '')if (aa.length == 11) {alert(aa.length) //这里可以做满足条件后的处理}},getValue(e, val) {let value = ''if (e.type === 'keyup') {value = val.replace(/\D/g, '');} else if (e.type === 'paste') {// window.clipboardData:IE浏览器获取剪贴板数据对象// event.clipboardData:Chrome, Firefox, Safari获取剪贴板数据对象let clipboardData = event.clipboardData || window.clipboardData;value = clipboardData.getData('Text'); // 获取剪贴板text格式的数据value = value.replace(/\D/g, '')}return value}, }
}
</script>

参考代码 https://www.cnblogs.com/qdwyy/p/10854014.html

vue 手机号(334分隔)相关推荐

  1. vue,原生html—input框输入银行卡4位分开、手机号344分隔

    vue,原生html-input框输入银行卡4位分开.手机号344分隔 效果图: 1.uni-app写input框 (注意type类型不能为number,这是一个坑,我理解到-数字框只能输入数字不能显 ...

  2. vue手机号中间四位加*号

    vue手机号中间四位加*号 1.在methods里面写一个方法: mobileStr(str) {if(str.length>7){return str.substring(0,3)+'**** ...

  3. Vue手机号正则匹配,姓名加密展示

    一丶手机号 (1)正则匹配 if (!/^1[3|4|5|6|7|8|9]\d{9}$/.test(13807999985)) {console.log(resultPhone);//138****9 ...

  4. el vue 手机号_Vue实现数字输入框中分割手机号码实例教程

    本文主要介绍了Vue实现数字输入框中分割手机号码的示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧,希望能帮助到大家. 需求 在移动端弹出系统数字键盘,输入手机号码的时 ...

  5. el vue 手机号_Vue 正则表达式验证邮箱和手机号码

    el-form绑定:rules="addFormRules": el-form-item绑定prop="name" 2.正则表达式验证邮箱和手机号码 expor ...

  6. Vue.js实现可配置的登录表单

    表单是后台项目业务中的常用组件,这次重构了登录功能以满足登录方式可配置的需求,在此记录和分享一下. 业务场景 在之前,项目只支持手机号+密码登录,前端是直接把表单写死的,后来有客户希望能支持验证码登录 ...

  7. 将苹果通讯录.contacts文件导入安卓通讯录提取.contacts文件联系人的教程

    我们知道苹果的通讯录是.contacts文件我们备份后,但是苹果手机丢失了怎么利用这个文件恢复到新买的安卓通讯录呢?其实这个并不简单,我们用记事本打开看到里面的内容乱码,明显加过密,所以不能直接手动恢 ...

  8. 吉信通短信接口(HTTP协议) java

    最近学习了吉信通接口的内容,做了简单的短信对接功能.和大家分享一下吉信通短信接口(HTTP协议).吉信通官网上也有相关的代码示例. 吉信通官网:http://www.winic.org/api/Sen ...

  9. Vue2积分商城PC端项目(一)

    目录 一.清空项目非必要文件 二.样式初始化 三.网站结构布置 四.网站数据请求模块 4.1.发起请求 4.2.代理配置 4.3.API与Request封装 4.4.发起请求 五.头部组件 5.1.版 ...

最新文章

  1. Java实现URL下载图片到本地
  2. 不是技术也能看懂容器技术与容器平台
  3. html5语句大全,html5基础语句(学习)
  4. Golang实现简单爬虫框架(5)——项目重构与数据存储
  5. Java多线程基础学习一:线程的6种状态和相互转化
  6. 2019年浙大计算机专业前景,2019年浙大计算机专业一志愿录取.pdf
  7. 介绍 JavaScript 中的闭包、局部变量(局部作用域)和私有变量等内容
  8. 统计自然语言处理第二版 下载
  9. VSCode下载安装和配置Java环境
  10. Web前端开发-网页制作零基础入门-Dreamweaver2019+HTML+CSS视频教程
  11. 简单几步教你爬取IOS手机端APP数据
  12. 测试——Bug的生命周期,生命周期流程图
  13. 【开源】这个人脸生成器厉害了,网红脸、明星脸、萌娃脸通通都有
  14. python怎么爬虎牙_Python爬虫:爬取虎牙星秀主播图片
  15. MSB30M-ASEMI贴片整流桥MSB30M
  16. jTessBoxEditor2.3.1训练字库
  17. 亚马逊开店有什么优势?红利期过了吗?
  18. Praat脚本-005 | 标注文件批量增加层级
  19. Anycodes,在线编程网站上线啦!支持六种编程语言,语法高亮,行数显示,和代码自动折叠。小伙伴们,请速度围观!
  20. 使用matlab对记录数据进行傅里叶分析

热门文章

  1. JPA入门、JPQL
  2. 【python圣诞树】圣诞节来了,还不快给女友来画一棵属于她的圣诞树
  3. asp.net天网代码
  4. ref的三种使用方式
  5. 日常问题解决:英频杰读卡器(门禁)安装部署
  6. 酷玩乐队的Yellow被翻唱了
  7. CMD命令进入指定目录
  8. 教您使用java爬虫gecco抓取JD全部商品信息
  9. Gecco学习笔记(六)
  10. 智能家居群雄逐鹿,小程序助力生态合作新模式