仅用单点表示的十进制数的正则表达式使用replace()方法

时间:2018-10-23 11:14:59

标签: javascript regex regex-group

我只想如果某人键入10.01.1,那么它将是10.011,而如果某人键入类似10.00 ......... 1,它将变成10.001

我已经尝试过此.replace(/(\d*)(\.){1,1}(\d*)(?=(\.)+)/g,'$1')。但这对我不起作用

2 个答案:

答案 0 :(得分:1)

您可以对点进行计数,然后用一个点替换冷杉,其余的则消除该点。

function singleDot(s) {
    return s.replace(/\./g, (c => _ => c++ ? '' : '.')(0));
}

console.log(['0.0', '0....0', '0.0...1'].map(singleDot));

答案 1 :(得分:0)

您可以使用split和点作为分隔符:

const strings = [
  "10.01.1",
  "10.00............1",
  "100",
  ""
];
strings.forEach((s) => {
  const [head, ...rest] = s.split('.');
  console.log(rest.length ? head + '.' + rest.join('') : head);
});