【发布时间】:2012-03-21 20:48:53
【问题描述】:
这个 Perl 脚本是我想用 JavaScript (source) 实现的:
s/([0-9]+)/sprintf('%04d',$1)/ge;
显然 sprintf 在 JavaScript 中不可用,但我知道您可以构建一个直接处理关注数字的函数,但是在我的情况下,我有一个长字符串,其中可能包含多个要转换的数字字符串如:abc8 23 123 变为:abc000008 000023 000123(以 6 位为例)。
所以要么是一些我没有得到的聪明的正则表达式,要么以某种方式将长字符串拆分为不同的字符串和数字组成的数组,并且只对数字一个接一个地起作用。
我真的想避免后一种方法,因为 1) 在这种情况下速度是一个问题,以及 2) 在正确的位置拆分字符串所涉及的正则表达式似乎比此时添加前导零更难。
最后,有没有其他方法可以用 JavaScript 的正则表达式来解决它?
【问题讨论】:
标签: javascript regex printf