javascript поиск и replaсe по строке с условием

224
08 мая 2017, 01:56

Имеется строка которая может быть такого вида

100.15.98

А может и такого

940.56

Вроде как должно подходить str.match(reg) с флагом g, но не как не могу понять как его применить.

На выходе нужно что-бы если строка имеет 2 точки то replase('.','') (первое вхождение), а если 1 точка, него не трогать.

Answer 1

непонятно зачем вам /g , просто "посмотрите вперед (?=)" нет ли там второй точки

console.log (fix('100.15.98'), fix('100.15.98.11'), fix('940.56')); 
console.log (fixGlobal('100.15.98 940.56 100.15.98.11')); 
function fix(num = '') { 
  return String(num).replace(/^(\d+)\.(?=\d+\.\d+)/, '$1,'); 
} 
 
//если искать надо в большом тексте, то /g конечно пригодится 
 
function fixGlobal(num = '') { 
return String(num).replace(/(^|\D)(\d+)\.(?=\d+\.\d+)/g, '$1$2,'); 
}

READ ALSO
Как определить версию ECMAscript?

Как определить версию ECMAscript?

Определить по имеющемуся кодуМне это нужно для Google Closure Compiler, там можно указать версию ECMAscript

241
Не работает тень в three js

Не работает тень в three js

Не могу настроить теньЧто не так?

204
Layout и draw в context на HTML5

Layout и draw в context на HTML5

Можно ли как то на Html5 в canvas задать уровни отрисовки? Например, сначала нарисовать 1 слой, потом 2, потом слой между 1 и 2, потом 0 слой

195
Раскадровка для HTML5 переходим с AS3

Раскадровка для HTML5 переходим с AS3

Есть MoveClip из 100 framesКак можно конвертировать в circle раскадровку? Чтобы применить в HTML5?

201