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