基于JavaScript / jQuery格式字符串的格式编号

比方说我有一个

>格式字符串“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++);
    });
}

相关文章

jQuery插件的种类 1、封装对象方法 这种插件是将对象方法封装起来,用于对通过选择器获取的jQuery对象进...
扩展jQuery插件和方法的作用是非常强大的,它可以节省大量开发时间。 入门 编写一个jQuery插件开始于给...
最近项目中需要实现3D图片层叠旋转木马切换的效果,于是用到了jquery.roundabout.js。 兼容性如图: ht...
一、什么是deferred对象? 开发网站的过程中,我们经常遇到某些耗时很长的javascript操作。其中,既有异...
AMD 模块 AMD(异步模块定义,Asynchronous Module Definition)格式总体的目标是为现在的开发者提供一...