JavaScript/jQuery 中基于格式字符串的格式数字
假设我有一个
- 格式字符串“XXX - XXX - XXXX”(用于格式化电话号码),或者任何其他格式字符串,其中 X 代表一个数字,
- 我想保留格式字符串中的格式(空格、破折号等)。 ),但将每个 X 替换为数字并删除源字符串中的所有格式
示例:
- 输入:“abc+d(123)4567890”,格式字符串:“XXX - XXX - XXXX”,输出:“123 - 456 - 7890 "
- 输入“abc 1 2 3 4567890”,格式字符串:“X:X!XXXXX,XXX”,输出:“1:2!34567,890”
- 输入“1234567890”,格式字符串:“(XXX)XXX-XXXX” ,输出:“(123)456-7890”
我想我可以通过迭代源字符串(“0123456789”中的每个字符)来获取数字,但我不确定如何将其优雅地组合在一起正确的格式。也许有一个 jQuery 函数可以做到这一点?
Let's say I have a
- format string "XXX - XXX - XXXX" (to format a phone number), or any other format string in which X stands for a number
- I want to preserve the formatting in the format string (spacing, dashes etc.), but exchange each X for a number and drop all formatting in the source string
Examples:
- Input: "abc+d(123)4567890", Format String: "XXX - XXX - XXXX", Output: "123 - 456 - 7890"
- Input "a b c 1 2 3 4567890", Format String: "X:X!XXXXX,XXX", Output: "1:2!34567,890"
- Input "1234567890", Format String: "(XXX)XXX-XXXX", Output: "(123)456-7890"
I'm thinking I could grab the number by iterating through the source string (foreach character in '0123456789') but I'm not sure how I can then put this together elegantly to the right format. Maybe there is a jQuery function which does this already?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这是一种方法:
Here's one way to do it:
首先,我们删除非数字 (\D),然后对它们进行分组,最后在替换文本中使用这些组。
First we remove the non-digits (\D), then we group them, and finally we use the groups in our replacement text.