比方说我有一个
>格式字符串“XXX – XXX – XXXX”(格式化电话号码)或X代表数字的任何其他格式字符串
>我想保留格式字符串中的格式(间距,破折号等),但是将每个X换成一个数字并删除源字符串中的所有格式
例子:
>输入:“abc d(123)4567890”,格式字符串:“XXX – XXX – XXXX”,输出:“123 – 456 – 7890”
>输入“a b c 1 2 3 4567890”,格式字符串:“X:X!XXXXX,XXX”,输出:“1:2!34567,890”
>输入“1234567890”,格式字符串:“(XXX)XXX-XXXX”,输出:“(123)456-7890”
我想我可以通过遍历源字符串(‘0123456789’中的foreach字符)来获取数字但我不知道如何将它优雅地放在正确的格式中.也许有一个jQuery函数已经这样做了?
解决方法
这是一种方法:
function formatPhoneNumber(input,format) { // Strip non-numeric characters var digits = input.replace(/\D/g,''); // Replace each "X" with the next digit var count = 0; return format.replace(/X/g,function() { return digits.charAt(count++); }); }