这个 Perl 脚本是我想在 JavaScript 中实现的(source https://stackoverflow.com/a/2659232/1076407):
s/([0-9]+)/sprintf('%04d',$1)/ge;
明显地sprintf在 JavaScript 中不可用,但我知道您可以构建一个直接对关注的数字起作用的函数,但是在我的例子中,我有一个很长的字符串,其中可能包含多个数字来转换字符串,如下所示:abc8 23 123
进入这个:abc000008 000023 000123
(以6位数字为例)。
所以它要么是一些我不明白的聪明的正则表达式,要么以某种方式找到某种方法将长字符串分割成一组不同的字符串和数字,并且只对数字进行一一操作。
我真的想避免后一种方法,因为 1)速度在这种情况下是一个问题,2)在正确位置分割字符串所涉及的正则表达式似乎比在这一点上添加前导零更难。
最后,还有其他方法可以使用 JavaScript 的正则表达式来解决这个问题吗?
您可以使用正则表达式来查找数字,并将它们替换为函数中的值:
s = s.replace(/\d+/g, function(m){
return "00000".substr(m.length - 1) + m;
});
Demo: http://jsfiddle.net/Guffa/sEUHY/ http://jsfiddle.net/Guffa/sEUHY/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)