Добавлять запятую и прекратить добавлять ее после точки - PullRequest
0 голосов
/ 08 марта 2020

Я пытаюсь отформатировать поле валюты, как это 1 222 333,00, но регулярное выражение, которое я имею, позволяет мне добавлять запятую после периода, как после .00 this. Я не хочу этого Как я могу остановить добавление запятой после точки? Любая помощь, пожалуйста. Это регулярное выражение, которое я использую. replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1,") когда я добавляю число после точки, например, 1,222,333.123455556 или как 2,333.444444, это должны быть просто цифры без запятых. когда я добавляю любое число, оно автоматически добавляет запятые, а когда я печатаю точку, оно все равно автоматически добавляет запятую после точки. строка, которую я хочу, выглядит следующим образом: «1,222,333,9999»

Ответы [ 3 ]

3 голосов
/ 08 марта 2020

Вы можете использовать number.toLocaleString ('en-US')

console.log(number.toLocaleString('en-IN'));
// → 1,23,456.789

Ссылка: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString

0 голосов
/ 08 марта 2020

Вы можете использовать это регулярное выражение:

/(?<=\d)(?=(?:\d{3})+\.)/

Демо

Это регулярное выражение можно сделать самодокументирующим, написав его в в свободном интервале режим :

/
(?<=\d)      # match is preceded by a digit (positive lookbehind)
(?=          # begin positive lookahead 
  (?:\d{3})  # match 3 digits in a non-capture group
  +          # execute non-capture group 1+ times
  \.         # match '.'
)            # end positive lookahead
/x           # free-spacing mode
0 голосов
/ 08 марта 2020

Вы можете запретить регулярному выражению совпадать с цифрами после точки, добавив в конце положительный прогноз. Новое регулярное выражение будет: /(\d)(?=(\d{3})+(?!\d))(?=.*\.)/g

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...