javascript - 仅删除数字开头不必要的 0

标签 javascript regex

我有一个代表数字的js字符串。我只想从字符串开头删除不必要的 0,如果不存在数字,则在逗号前添加 0,使用正则表达式:

var regex = ?
var replace = ?

new = "0001,3".replace(regex, replace); // 1,3
new = ",3".replace(regex, replace); // 0,3
new = "000,34".replace(regex, replace); // 0,34
new = "0201,3".replace(regex, replace); // 201,3
new = "0002,03".replace(regex, replace); // 2,03

我已经尝试过:

new = string.replace(/^0+(,)/g, '$1').replace(/^,/g), '0,');

但看起来第二次替换不起作用。

最佳答案

使用正则表达式替换 0

function trim(txt) {
  return txt.replace(/^(0*)(,?)/, (full, zeros, end) => end ? "0," : "");
  // If the zeros are directly followed by a `,` then keep a `0`
  // use `function (){return arguments[2] ? "0," : "";}` for ES5
}

console.log(trim("0001,3"));
console.log(trim(",3"));
console.log(trim("000,34"));
console.log(trim("0201,3"));
console.log(trim("0002,03"));

使用解析和字符串化(将替换开头和结尾的 0)

function trim(txt) {
  return String(+(txt.replace(",", "."))).replace(".", ",");
}

console.log(trim("0001,3"));
console.log(trim(",3"));
console.log(trim("000,34"));
console.log(trim("0201,3"));
console.log(trim("0002,03"));

关于javascript - 仅删除数字开头不必要的 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56947950/

相关文章:

python - Pandas 在另一个系列的一个系列中找到 super 字符串

Javascript 正则表达式非贪婪搜索引号

javascript - 如何暂停所有 CSS 动画并在需要时恢复

javascript - 在 jQuery 的数据属性中存储数据 VS javascript 字符串

javascript - 响应式的 3 列布局将第 3 列移入/位于第 1 列之上

python - 拆分 2 个可能为负数的连字符

mysql - 避免在 mysql 选择查询中选择字母表

javascript - 在谷歌地图 API Javascript 中加入搜索框和删除标记

javascript - 在 JavaScript 中单击图像时获取四个数字

java - 拆分重复文本而不使用分隔符?