关于电话号码的分割(包括显示与输入两方面)
2014-04-11 11:17
537 查看
--------------------------------- 题记
最近完善的的,挺好用的,话不多说,直接上代码。
--------------------------------- 代码
var tinyUtil = {
/*
* 电话号码验证分割(输入)
* 注:传参时注意使用 --> newMobile : $("#newMobile").val().replace(/-/g, ''), 去除分割符号
*/
phoneNumSegmentInput : function(target) {
var validate = function(obj, phoneNum) {
//手机分割
var checkPhoneNum = /^1[3|4|5|8][0-9]\d{1}$/;
if (checkPhoneNum.test(phoneNum)) {
$(obj).val(phoneNum.substring(0, 3) + "-" +phoneNum.substring(3, phoneNum.length));
return ;
}
checkPhoneNum = /^1[3|4|5|8][0-9]-\d{5}$/;
if (checkPhoneNum.test(phoneNum)) {
$(obj).val(phoneNum.substring(0, 8) + "-" + phoneNum.substring(8, phoneNum.length));
return ;
}
checkPhoneNum = /^1[3|4|5|8][0-9]-\d{4}-\d{5}$/;
if (checkPhoneNum.test(phoneNum)) {
$(obj).val(phoneNum.replace(/-/g, ''));
return ;
}
//手机撤回
checkPhoneNum = /^1[3|4|5|8][0-9]\d{8}$/;
if (checkPhoneNum.test(phoneNum)) {
$(obj).val(phoneNum.substring(0, 3)
+ "-" + phoneNum.substring(3, 7)
+ "-" + phoneNum.substring(7, phoneNum.length));
return ;
}
if ((phoneNum.length == 4 ||phoneNum.length == 9)
&& phoneNum.substring(phoneNum.length - 1, phoneNum.length) == '-') {
$(obj).val(phoneNum.substring(0, phoneNum.length - 1));
return ;
}
//座机分割
checkPhoneNum = /^0[1|2]\d{2}$/;
if (checkPhoneNum.test(phoneNum) && phoneNum.length == 4) {
$(obj).val(phoneNum.substring(0, 3) + "-" +phoneNum.substring(3, phoneNum.length));
return ;
}
checkPhoneNum = /^0[1|2]\d-\d{9}$/;
if (checkPhoneNum.test(phoneNum) && phoneNum.length == 13) {
$(obj).val(phoneNum.replace(/-/g, ''));
return ;
}
checkPhoneNum = /^0[3|4|5|6|7|8|9]\d{3}$/;
if (checkPhoneNum.test(phoneNum) && phoneNum.length == 5) {
$(obj).val(phoneNum.substring(0, 4) + "-" +phoneNum.substring(4, phoneNum.length));
return ;
}
checkPhoneNum = /^0[3|4|5|6|7|8|9]\d{2}-\d{9}$/;
if (checkPhoneNum.test(phoneNum) && phoneNum.length == 14) {
$(obj).val(phoneNum.replace(/-/g, ''));
}
//座机撤回
checkPhoneNum = /^0[1|2]\d{9}$/;
if (checkPhoneNum.test(phoneNum)) {
$(obj).val(phoneNum.substring(0, 3)
+ "-"
+ phoneNum.substring(3, phoneNum.length));
}
checkPhoneNum = /^0[3|4|5|6|7|8|9]\d{10}$/;
if (checkPhoneNum.test(phoneNum)) {
$(obj).val(phoneNum.substring(0, 4)
+ "-"
+ phoneNum.substring(4, phoneNum.length));
}
if (phoneNum.substring(phoneNum.length -1, phoneNum.length) == '-') {
if (phoneNum.length == 4) {
$(obj).val(phoneNum.substring(0, 3));
}
if (phoneNum.length == 5) {
$(obj).val(phoneNum.substring(0, 4));
}
}
};
//正常按键处理
$(target).keyup(function() {
var phoneNum = $(this).val();
//数字和长度验证
if (!/^[\d|-]*$/.test(phoneNum) || phoneNum.length > 15) {
$(this).val(phoneNum.substring(0, phoneNum.length - 1));
}
//拆分
validate(this, phoneNum);
});
//持续按下不放处理
$(target).keypress(function() {
var phoneNum = $(this).val();
//拆分
validate(this, phoneNum);
});
},
/*
* 电话号码分割(显示)for single target
*/
phoneNumSegmentShowSingleton : function(target) {
var phoneNum = $(target).text();
//手机分割
var checkPhoneNum = /^1[3|4|5|8]\d{9}$/;
if (checkPhoneNum.test(phoneNum)) {
$(target).text(phoneNum.substring(0, 3)
+ "-" + phoneNum.substring(3, 7)
+ "-" + phoneNum.substring(7, phoneNum.length));
return ;
}
//座机分割
checkPhoneNum = /^0[1|2]\d{9}$/;
if (checkPhoneNum.test(phoneNum)) {
$(target).text(phoneNum.substring(0, 3)
+ "-"
+ phoneNum.substring(3, phoneNum.length));
}
checkPhoneNum = /^0[3|4|5|6|7|8|9]\d{10}$/;
if (checkPhoneNum.test(phoneNum)) {
$(target).text(phoneNum.substring(0, 4)
+ "-"
+ phoneNum.substring(4, phoneNum.length));
}
},
/*
* 电话号码分割(显示) for table
* tdNum:电话号码在某tr中的第tdNum个位置的td
*/
phoneNumSegmentShowTable : function(target, tdNum) {
$(target).find("tr").each(function(index) {
if (index != 0) {
$(this).find("td").each(function(i) {
var phoneNum = $(this).text();
var tdObj = this;
$(tdNum).each(function(index) {
if (i == $(tdNum).get(index)) {
//手机分割
var checkPhoneNum = /^1[3|4|5|8]\d{9}$/;
if (checkPhoneNum.test(phoneNum)) {
$(tdObj).text(phoneNum.substring(0, 3)
+ "-" + phoneNum.substring(3, 7)
+ "-" + phoneNum.substring(7, phoneNum.length));
return ;
}
//座机分割
checkPhoneNum = /^0[1|2]\d{8,9}$/;
if (checkPhoneNum.test(phoneNum)) {
$(tdObj).text(phoneNum.substring(0, 3)
+ "-"
+ phoneNum.substring(3, phoneNum.length));
return ;
}
checkPhoneNum = /^0[3|4|5|6|7|8|9]\d{9,10}$/;
if (checkPhoneNum.test(phoneNum)) {
$(tdObj).text(phoneNum.substring(0, 4)
+ "-"
+ phoneNum.substring(4, phoneNum.length));
return ;
}
}
});
});
}
});
}
};
最近完善的的,挺好用的,话不多说,直接上代码。
--------------------------------- 代码
var tinyUtil = {
/*
* 电话号码验证分割(输入)
* 注:传参时注意使用 --> newMobile : $("#newMobile").val().replace(/-/g, ''), 去除分割符号
*/
phoneNumSegmentInput : function(target) {
var validate = function(obj, phoneNum) {
//手机分割
var checkPhoneNum = /^1[3|4|5|8][0-9]\d{1}$/;
if (checkPhoneNum.test(phoneNum)) {
$(obj).val(phoneNum.substring(0, 3) + "-" +phoneNum.substring(3, phoneNum.length));
return ;
}
checkPhoneNum = /^1[3|4|5|8][0-9]-\d{5}$/;
if (checkPhoneNum.test(phoneNum)) {
$(obj).val(phoneNum.substring(0, 8) + "-" + phoneNum.substring(8, phoneNum.length));
return ;
}
checkPhoneNum = /^1[3|4|5|8][0-9]-\d{4}-\d{5}$/;
if (checkPhoneNum.test(phoneNum)) {
$(obj).val(phoneNum.replace(/-/g, ''));
return ;
}
//手机撤回
checkPhoneNum = /^1[3|4|5|8][0-9]\d{8}$/;
if (checkPhoneNum.test(phoneNum)) {
$(obj).val(phoneNum.substring(0, 3)
+ "-" + phoneNum.substring(3, 7)
+ "-" + phoneNum.substring(7, phoneNum.length));
return ;
}
if ((phoneNum.length == 4 ||phoneNum.length == 9)
&& phoneNum.substring(phoneNum.length - 1, phoneNum.length) == '-') {
$(obj).val(phoneNum.substring(0, phoneNum.length - 1));
return ;
}
//座机分割
checkPhoneNum = /^0[1|2]\d{2}$/;
if (checkPhoneNum.test(phoneNum) && phoneNum.length == 4) {
$(obj).val(phoneNum.substring(0, 3) + "-" +phoneNum.substring(3, phoneNum.length));
return ;
}
checkPhoneNum = /^0[1|2]\d-\d{9}$/;
if (checkPhoneNum.test(phoneNum) && phoneNum.length == 13) {
$(obj).val(phoneNum.replace(/-/g, ''));
return ;
}
checkPhoneNum = /^0[3|4|5|6|7|8|9]\d{3}$/;
if (checkPhoneNum.test(phoneNum) && phoneNum.length == 5) {
$(obj).val(phoneNum.substring(0, 4) + "-" +phoneNum.substring(4, phoneNum.length));
return ;
}
checkPhoneNum = /^0[3|4|5|6|7|8|9]\d{2}-\d{9}$/;
if (checkPhoneNum.test(phoneNum) && phoneNum.length == 14) {
$(obj).val(phoneNum.replace(/-/g, ''));
}
//座机撤回
checkPhoneNum = /^0[1|2]\d{9}$/;
if (checkPhoneNum.test(phoneNum)) {
$(obj).val(phoneNum.substring(0, 3)
+ "-"
+ phoneNum.substring(3, phoneNum.length));
}
checkPhoneNum = /^0[3|4|5|6|7|8|9]\d{10}$/;
if (checkPhoneNum.test(phoneNum)) {
$(obj).val(phoneNum.substring(0, 4)
+ "-"
+ phoneNum.substring(4, phoneNum.length));
}
if (phoneNum.substring(phoneNum.length -1, phoneNum.length) == '-') {
if (phoneNum.length == 4) {
$(obj).val(phoneNum.substring(0, 3));
}
if (phoneNum.length == 5) {
$(obj).val(phoneNum.substring(0, 4));
}
}
};
//正常按键处理
$(target).keyup(function() {
var phoneNum = $(this).val();
//数字和长度验证
if (!/^[\d|-]*$/.test(phoneNum) || phoneNum.length > 15) {
$(this).val(phoneNum.substring(0, phoneNum.length - 1));
}
//拆分
validate(this, phoneNum);
});
//持续按下不放处理
$(target).keypress(function() {
var phoneNum = $(this).val();
//拆分
validate(this, phoneNum);
});
},
/*
* 电话号码分割(显示)for single target
*/
phoneNumSegmentShowSingleton : function(target) {
var phoneNum = $(target).text();
//手机分割
var checkPhoneNum = /^1[3|4|5|8]\d{9}$/;
if (checkPhoneNum.test(phoneNum)) {
$(target).text(phoneNum.substring(0, 3)
+ "-" + phoneNum.substring(3, 7)
+ "-" + phoneNum.substring(7, phoneNum.length));
return ;
}
//座机分割
checkPhoneNum = /^0[1|2]\d{9}$/;
if (checkPhoneNum.test(phoneNum)) {
$(target).text(phoneNum.substring(0, 3)
+ "-"
+ phoneNum.substring(3, phoneNum.length));
}
checkPhoneNum = /^0[3|4|5|6|7|8|9]\d{10}$/;
if (checkPhoneNum.test(phoneNum)) {
$(target).text(phoneNum.substring(0, 4)
+ "-"
+ phoneNum.substring(4, phoneNum.length));
}
},
/*
* 电话号码分割(显示) for table
* tdNum:电话号码在某tr中的第tdNum个位置的td
*/
phoneNumSegmentShowTable : function(target, tdNum) {
$(target).find("tr").each(function(index) {
if (index != 0) {
$(this).find("td").each(function(i) {
var phoneNum = $(this).text();
var tdObj = this;
$(tdNum).each(function(index) {
if (i == $(tdNum).get(index)) {
//手机分割
var checkPhoneNum = /^1[3|4|5|8]\d{9}$/;
if (checkPhoneNum.test(phoneNum)) {
$(tdObj).text(phoneNum.substring(0, 3)
+ "-" + phoneNum.substring(3, 7)
+ "-" + phoneNum.substring(7, phoneNum.length));
return ;
}
//座机分割
checkPhoneNum = /^0[1|2]\d{8,9}$/;
if (checkPhoneNum.test(phoneNum)) {
$(tdObj).text(phoneNum.substring(0, 3)
+ "-"
+ phoneNum.substring(3, phoneNum.length));
return ;
}
checkPhoneNum = /^0[3|4|5|6|7|8|9]\d{9,10}$/;
if (checkPhoneNum.test(phoneNum)) {
$(tdObj).text(phoneNum.substring(0, 4)
+ "-"
+ phoneNum.substring(4, phoneNum.length));
return ;
}
}
});
});
}
});
}
};
相关文章推荐
- XEditText:带删除功能的EditText;可设置自动添加分隔符分割电话号码、银行卡号等;支持禁止Emoji表情符号输入;自定义右边显示图标作功能选项;仿iOS输入框风格
- 输入字符串,分割字符,分别显示结果
- 检索通讯录,根据输入的电话号码的每一位下拉显示检索结果
- 关于SecureCRT输入无显示的问题解决办法
- shell实现文件内容查询如输入姓名结果显示电话号码等信息
- 关于Red Hat 企业版下输入ifconfig显示not found问题解决办法
- 关于日期的显示与输入
- 关于eclipse调试(包括汇编显示)
- 编程实现显示用户输入的月份(不包括闰年的月份)拥有的天数
- [导入]关于日期的显示与输入
- 关于对HashSet,List 查找包括加载元素方面的综合测试
- Oracle EBS诊断方面几种情况的解决方法(诊断菜单隐藏、个性化功能报错、关于此页的显示)
- 输入名字显示其电话号码
- 牛牛和15朋友来玩打土豪分田地的游戏,牛牛决定让你来分田地,地主的田地可以看成是一个矩形,每个位置有一个价值。分割田地的方法是横竖各切三刀,分成26份,作为领导干部,牛牛总是会选择其中总价值最小的一份田地,作为牛牛最好的朋友,你希望牛牛取得的田地价值和尽可能大,你知道这个值最大可以是多少吗? 输入两个整数n和m(1≤n,m≤75)表示田地的大小,接下来n行,每行包括m个0-9之间的数字,表示每块
- JS中同步显示并分割输入的数字字符串
- Oracle EBS诊断方面几种情况的解决方法(诊断菜单隐藏、个性化功能报错、关于此页的显示)
- 关于聊天室输入密码时不显示打印*的代码问题
- 关于iPad上模态显示视图中的UITextField,UITextView在输入完成后无法回收键盘的问题解决。
- 关于xcode7下的ios模拟器输入内容无法显示系统键盘的解决办法