jquery®ex的电话号码格式

时间:2011-10-27 18:17:37

标签: javascript jquery regex

我需要验证并将任何输入值转换为电话号码格式,即

输入 er + f375g25123435s67 我需要转换为 +375 25 1234567

..

keyup: function(){
newval = $(this).val().replace(/(\D+|\+)/g, '');
newval = newval.replace(/\d(?=(?:\d{3})+(?!\d))/g, '$& ');
$(this).val(newval);
}

..

这是另一个代码,我需要修改它..

3 个答案:

答案 0 :(得分:2)

删除非电话相关字符:

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);

位于:http://jsfiddle.net/cabbott/KaYeJ/

答案 1 :(得分:2)

你可以试试这个:

//这将删除非数字

  

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

评论:抱歉不知道你想要一个完整的代码答案。 http://jsfiddle.net/UcJeV/4/

答案 2 :(得分:2)

$('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);       
    }
});

Fiddle to test