Javascript 带有jquery&;的电话号码格式;正则表达式
我需要验证并将任何输入val转换为电话号码格式,即 输入er+f375g25123435s67我需要转换成+375 25 1234567Javascript 带有jquery&;的电话号码格式;正则表达式,javascript,jquery,regex,Javascript,Jquery,Regex,我需要验证并将任何输入val转换为电话号码格式,即 输入er+f375g25123435s67我需要转换成+375 25 1234567 .. keyup: function(){ newval = $(this).val().replace(/(\D+|\+)/g, ''); newval = newval.replace(/\d(?=(?:\d{3})+(?!\d))/g, '$& '); $(this).val(newval); } .. 这是另一个代码,我需要修改它。以删除
..
keyup: function(){
newval = $(this).val().replace(/(\D+|\+)/g, '');
newval = newval.replace(/\d(?=(?:\d{3})+(?!\d))/g, '$& ');
$(this).val(newval);
}
..
这是另一个代码,我需要修改它。以删除与电话无关的字符:
var phone = "er+f375g25123435s67";
phone = phone.replace(/[^+|\d]/g, ""); // result = "+3752512343567"
然后,要匹配电话模式:
if (phone.match(/^[+][0-9]{12}$/)) // or /^[+][0-9]{13}$/ for 13 digits
...
编辑:以下是我为测试和替换所能想到的:
phone = $(this).val().replace(/^[^+]{1}/, '');
if (phone.length > 1)
phone = phone.substring(0,1) + phone.substring(1).replace(/[^\d]/g, '');
if (phone.match(/^[+][\d]{12}$/))
phone = phone.substring(0,4) + " " + phone.substring(4,6) + " " + phone.substring(6,14);
位于此处:您可以尝试以下操作:
//这将删除非数字
keyup:function(){
var phone=$(this.val().replace(/\D/g');var myRegexp=/(\d{3})(\d{3})(\d*)/g var match=myRegexp.exec(电话); $(this.val('+'+match[1]+''+match[2]+'+match[3]) 1美元2美元和3美元应为375 25 1234567美元 评论:很抱歉,我不知道你想要一个带代码的完整答案。
代码的第一部分工作正常,但第二部分不工作。示例字符串的结果是“+”和13位,而有效字符串的结果是12位。我不确定哪一位数字正确。亲爱的卡博特,但我不需要匹配电话模式,我需要动态转换它(在输入中)…-类似这样的事情(代码快完成了)我注意到在你的JSFIDLE中出现了这个问题。我想看看我是否能想出一个模式来处理这个问题。请按一个Fork按钮并给我一个新的URL。不幸的是,这个代码不起作用(),因为这里有一个错误
(\D+++)
如何编码ipt=“+”+ipt substring(0,3)+“+ipt substring(4,6)+”+ipt.substring(7)
转换为正则表达式?我用一个有效的答案更新了我的答案,包括一个要在移动中格式化的正则表达式,请现在检查
}
$('input').live({
keyup: function() {
var ipt = $(this).val().replace(/[^\d]*/g, ""); // remove non-digits
ipt = ipt.replace(/(\d{1,3})(\d{1,2})?(\d{1,7})?.*/g, '+$1 $2 $3');
$(this).val(ipt);
}
});