Регулярное выражение для десятичного числа с использованием только одной точки метод replace () - PullRequest
0 голосов
/ 23 октября 2018

Я просто хочу, если кто-то наберет 10.01.1, тогда это будет 10.011, а если кто-то наберет что-то вроде 10.00 ............ 1, то станет 10.001

Я пыталсяэто .replace(/(\d*)(\.){1,1}(\d*)(?=(\.)+)/g,'$1').Но это не работает для меня

Ответы [ 2 ]

0 голосов
/ 23 октября 2018

Вы можете использовать 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);
});
0 голосов
/ 23 октября 2018

Вы можете посчитать точки и заменить только первые точками, а остальные удалить точку.

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

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