замените данные регулярным выражением, мое регулярное выражение не функционирует - JavaScript - PullRequest
0 голосов
/ 22 февраля 2020

Мне нужно заменить текст следующим образом

, если текст содержит буквы, его следует заменить пустым

, если текст содержит запятые, вам следует заменить на точку

если текст содержит точки, его следует заменить пустым

Я создал следующее

const a= 'C$ 8.572.121.247,04';
a.replace("C$","").split(".").join('').split(",").join('.')

Результатом будет следующее

8572121247.04

Привет,

Мне нужно заменить текст следующим образом

, если текст содержит буквы, его следует заменить пустым

, если текст содержит запятые, вы должны заменить точку

, если текст содержит точки, он должен заменить на пустой

Я создал следующий

const a= 'C$ 8.572.121.247,04';
a.replace("C$","").split(".").join('').split(",").join('.')

Результат следующий

8572121247.04

Но я считаю, что это не лучший способ, потому что он заменяет слишком много раз, также он может быть немного лучше, но у меня нет нашёл способ

кто-то может мне помочь пожалуйста оптимизировать код

enter image description here

Ответы [ 2 ]

1 голос
/ 23 февраля 2020

Другим вариантом является использование чередования [^0-9,]|(,) и использование замены с функцией обратного вызова, проверяющей значение группы 1.

const a = 'C$ 8.572.121.247,04';
console.log(a.replace(/[^0-9,]|(,)/g, (_, g1) => g1 ? "." : ""));
1 голос
/ 22 февраля 2020

Вы можете использовать replace метод, который является более компактным.

const a = 'C$ 8.572.121.247,04';
console.log(a.replace(/[^0-9,]/ig, '').replace(/,/ig, '.'));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...