jquery和vue分别对input输入框手机号码格式化(344)
jQuery
function fomatterTel(val, old) {//val: 当前input的值,old: input上次的值
var str = "";
var telLen = val.length;
if (old.length <= telLen) {
if (telLen === 4 || telLen === 9) {
var pre = val.substring(0, telLen-1);
//substring() 方法用于提取字符串中介于两个指定下标之间的字符。
//stringObject.substring(start,stop)
//start必需。一个非负的整数,规定要提取的子串的第一个字符在 stringObject 中的位置。
//可选。一个非负的整数,比要提取的子串的最后一个字符在 stringObject 中的位置多 1。
如果省略该参数,那么返回的子串会一直到字符串的结尾
var last = val.substr(telLen-1, 1);
//substr() 方法可在字符串中抽取从 start 下标开始的指定数目的字符。
//stringObject.substr(start,length)
//start必需。要抽取的子串的起始下标。必须是数值。如果是负数,那么该参数声明从字符串的尾部开始算起的位置。也就是说,-1 指字符串中最后一个字符,-2 指倒数第二个字符,以此类推。
//length可选。子串中的字符数。必须是数值。如果省略了该参数,那么返回从 stringObject 的开始位置到结尾的字串
//返回值:一个新的字符串,包含从 stringObject 的 start(包括 start 所指的字符) 处开始的 length 个字符。如果没有指定 length,那么返回的字符串包含从 start 到 stringObject 的结尾的字符。
//注释:substr() 的参数指定的是子串的开始位置和长度,因此它可以替代 substring() 和 slice() 来使用。
str = pre + ' ' + last;
} else {
str = val;
}
} else {
if (telLen === 9 || telLen === 4) {
str = val.trim();
//trim() 函数用于去除字符串两端的空白字符
} else {
str = val;
}
}
return str;
}
1.input的输入事件最好用oninput事件监听,用keyup的话会有闪烁,不过看不太出来,也能用。jquery的input事件要用bind绑定,不能直接写$("#input1").input这样写会报错, 要写成$("#input1").bind('input', function(){});
2.old的获取也很简单
var oldTelephone = $("#telephone").val();//输入前先获取一次
$("#telphone").bind('input',function () {
$("#telephone").val(fomatterTel($("#telephone").val(), oldTelephone));
oldTelephone = $("#telephone").val();//输入后保存old为下一次输入做准备
});
vue获取
data中存入telephone: ''。input的v-model为telephone 。在watch中监听telephone
<input v-model='telephone'>
data () {
return {
telephone: ''
}
},
watch: {
telephone (newValue, oldValue) {
if (newValue > oldValue) {
if (newValue.length === 4 || newValue.length === 9) {
var pre = newValue.substring(0, newValue.length - 1);
var last = newValue.substr(newValue.length - 1, 1);
this.telephone = pre + ' ' + last;
} else {
this.telephone = newValue;
}
} else {
if (newValue.length === 9 || newValue.length === 4) {
this.telephone = this.telephone.trim();
} else {
this.telephone = newValue;
}
}
}
}
jquery和vue分别对input输入框手机号码格式化(344)的更多相关文章
- vue 如何实现 Input 输入框模糊查询方法
原理:原生js的indexOf() 方法,该方法将从头到尾地检索数组,看它是否含有对应的元素.开始检索的位置在数组 start 处或数组的开头(没有指定 start 参数时).如果找到一个 item, ...
- JQuery实现获取多个input输入框的值,并存放在一个数组中
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- jquery清空div里所有input输入框的值
$("#divId input").val("");
- 基于jQuery的input输入框下拉提示层(自动邮箱后缀名)
基于jQuery的input输入框下拉提示层,方便用户输入邮箱时的提示信息,需要的朋友可以参考下 效果图 // JavaScript Document (function($){ $.fn ...
- input 输入框获得/失去焦点时隐藏/显示文字(jquery版)
input输入框在获得或失去焦点时隐藏或显示文字,这样的焦点效果想必很多朋友在填写form表格的时候都曾见识过吧,本文使用jquery实现以下,感兴趣的朋友可以参考下哈 大家可以看效果图的搜索输入框, ...
- jQuery动态添加、删除按钮及input输入框
输入框的加减实现: <html> <head> <meta charset="utf-8"> <title>动态创建按钮</t ...
- vue中input输入框的模糊查询实现
最近在使用vue写webapp在,一些感觉比较有意思的分享一下. 1:input输入框: <input class="s-search-text" placeholder=& ...
- jquery获取input输入框中的值
如何用javascript获取input输入框中的值,js/jq通过name.id.class获取input输入框中的value 先准备一段 HTML <input type="tex ...
- js与jquery获取input输入框中的值
如何用javascript获取input输入框中的值,js/jq通过name.id.class获取input输入框中的value 先准备一段 HTML 一.jquery获取input文本框中的值 通过 ...
随机推荐
- python随机生成手机号码
一句话生成电话号码random.choice(['139','188','185','136','158','151'])+"".join(random.choice(" ...
- SQLite的.NET应用自适应32位/64位系统 z
如果一个.NET应用要自适应32位/64位系统,只需要在项目的“目标平台”设置为“Any CPU”.但是如果应用中使用了SQLite,情况就不同了. SQLite的.NET开发包来自是System.D ...
- React学习笔记 - Hello World
React Learn Note 1 React学习笔记(一) 标签(空格分隔): React JavaScript 前.Hello World 1. 创建单页面应用 使用Create React A ...
- laravel5.4学习笔记
1.安装laravel可以直接用composer安装,然后用laravel new xxx来新建项目 服务器上安装了composer(php包管理工具)以后, composer global requ ...
- Orchard Core 使用模板创建Module
根据官方示例:https://orchardcore.readthedocs.io/en/latest/Templates/README/#create-a-new-module 执行以下命令: do ...
- TOEFL考试(一年半的复仇,裸考)
8/11/2018 had a TOEFL test without preparation. Reading (worry about too much, not familiar with the ...
- Python简单介绍以及Python环境搭建(入门1)
转载请标明出处: http://www.cnblogs.com/why168888/p/6400694.html 本文出自:[Edwin博客园] Python 简单介绍 适合领域: Web网站和各种网 ...
- robotframework_如何用Chrome模拟手机打开H5页面
由于公司目前的产品大部分都是APP端的H5页面,APP原生页面很少,测试H5页面如果去搭建appium或者macaca这类自动化平台太费时,太重而不能快速落地:与自动化的目标:提高测试效率相悖.但如果 ...
- 线程pthread_cleanup_push的简单例程.
http://www.cnblogs.com/hnrainll/archive/2011/04/20/2022149.html #include<stdlib.h> #include< ...
- 【mysql案例】mysql5.6.14配置my.cnf多实例,mysql_install_db初始化不读取my.cnf配置文件
1.1.1. mysql5.6.14多实例my.cnf时,初始化不读取my.cnf配置文件 [环境描写叙述] 在多实例配置的/etc/my.cnf环境中,运行mysql_install_db后.启动M ...