Регулярное выражение для валюты индийской рупии '₹' - PullRequest
2 голосов
/ 27 марта 2019

Мне нужно условно добавить

<span class="highlight"> ... </span>

до и после следующего типа строк с помощью регулярных выражений!
ТИП 1: ,00 00,00 000 или ₹ 00,00 или ₹ .00 (стоимость валюты INR)
ТИП 2: 00 кВт (некоторые цифры следуют через пробел, а затем - кВт)
ТИП 4: 00 кВА (некоторые цифры следуют через пробел, а затем - кВА)
ТИП 3: 000 кВАч (за некоторыми цифрами следует пробел, а затем кВАч)

Примеры:
1. «Вы спасли 1,71,252 in за 7 дней» должно измениться на

You Saved <span class="highlight">₹ 1,71,252</span> in 7 days
  1. «Экономия: 203 кВт» изменяется на
Savings: <span class="highlight">203 kW</span>
  1. «Потребление: 225 кВАч» изменяется на
Consumption: <span class="highlight">225 kVAh</span>

Ранее я пробовал это в Javascript Flavor regex:

this.tb1 = response["text_block_1"].replace(/(\d|₹|,|kW|kVAh|kVA)/g, '<span class="highlight">$1</span>');

но этого недостаточно, потому что кажется, что он выделяет все числа в строке. Я новичок в регулярных выражениях и просто не могу суммировать все регулярные выражения в одно. Вот регулярное выражение, которое я смог написать для части валюты

this.tb1 = " ₹ 1,71,252 in 7 days".replace(/(?=.*\d)^\₹ ?(([1-9]\d{0,2}(,\d{2,3})*)|0)?(\.\d{1,2})?$/, '<span class="highlight">$1</span>');

но, к сожалению, это тоже не работает!

1 Ответ

1 голос
/ 27 марта 2019

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

(₹\s+\d+(?:,\d+)*|\d+(?:,\d+)*\s+(?:kW|kVAh?))

И заменить на,

<span class="highlight">$1</span>

Демо

Демо код JS,

var arr = ['You Saved ₹ 1,71,252 in 7 days','Savings: 203 kW','Consumption: 225 kVAh']

for (s of arr) {
  console.log(s.replace(/(₹\s+\d+(?:,\d+)*|\d+(?:,\d+)*\s+(?:kW|kVAh?))/g, '<span class="highlight">$1</span>'));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...