Я просто хочу, если кто-то наберет 10.01.1, тогда это будет 10.011, а если кто-то наберет что-то вроде 10.00 ............ 1, то станет 10.001
Я пыталсяэто .replace(/(\d*)(\.){1,1}(\d*)(?=(\.)+)/g,'$1').Но это не работает для меня
.replace(/(\d*)(\.){1,1}(\d*)(?=(\.)+)/g,'$1')
Вы можете использовать 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); });
Вы можете посчитать точки и заменить только первые точками, а остальные удалить точку.
function singleDot(s) { return s.replace(/\./g, (c => _ => c++ ? '' : '.')(0)); } console.log(['0.0', '0....0', '0.0...1'].map(singleDot));