我有很多这样的字符串:
0001, 0002, ..., 0010, 0011, ..., 0100, 0101,...
我希望这些变成这样:
1, 2, ..., 10, 11, ..., 100, 101, ...
所以我希望在存在不同的char之前删除所有0
个字符。
我试过
.replace(/0/g, '')
但当然它之后也删除了0
个字符。因此,例如0010
变为1
而不是10
。你能帮我吗?
答案 0 :(得分:3)
你可以做到
.replace(/\d+/g, function(v){ return +v })
答案 1 :(得分:2)
这是短路解决方案
"0001".replace(/^0+/,""); // => 1
...
// Tested on Win7 Chrome 44+
^
...开始使用String
0+
...至少有一个0
P.s。:在页面上测试正则表达式:https://regex101.com/或https://www.debuggex.com
更新1:
对于一个长字符串
"0001, 0002, 0010, 0011, 0100, 0101".replace(/(^|\s)0+/g,"") // => 1, 2, 10, 11, 100, 101
// Tested on Win7 Chrome 44+
<强>示例:强>
// short Strings
var values = ['0001', '0002','0010', '0011','0100','0101'];
for(var idx in values){
document.write(values[idx] + " -> "+values[idx].replace(/^0+/,"") + "<br/>");
}
// one long String
document.write("0001, 0002, 0010, 0011, 0100, 0101".replace(/(^|\s)0+/g,""));
答案 2 :(得分:1)
将正则表达式用作/(^|,\s*)0+/g
,它将在开始时选择0,或者后跟,
和空格
document.write('0001, 0002, ..., 0010, 0011, ..., 0100, 0101,...'.replace(/(^|,\s*)0+/g,'$1'))
说明:
(^|,\s*)0+
答案 3 :(得分:1)