Регулярное выражение работает в chrome, но ломается в safari: недопустимое регулярное выражение: недопустимое имя спецификатора группы
Я пытаюсь напечатать десятичное число в JavaScript с запятыми в качестве разделителей тысяч.
function numberWithCommas(number) { return number.toString().replace(/\B(?<!\.\d*)(?=(\d{3})+(?!\d))/g, ","); }
Это регулярное выражение хорошо работает на android, но ломается в iOS (safari, event chrome)
Invalid regular expression: invalid group specifier name
Пожалуйста, помогите!!
Что я уже пробовал:
вместо этого используется старое регулярное выражение
function addCommas(nStr) { nStr += ''; var x = nStr.split('.'); var x1 = x[0]; var x2 = x.length > 1 ? '.' + x[1] : ''; var rgx = /(\d+)(\d{3})/; while (rgx.test(x1)) { x1 = x1.replace(rgx, '$1' + ',' + '$2'); } return x1 + x2; }