正则表达式,用于印度卢比“₹”

时间:2019-03-27 14:01:58

标签: javascript regex

我需要有条件地添加

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

在正则表达式的帮助下,以下类型的字符串前后!
类型1:₹00,00,000或₹00.00或₹.00(INR货币值)
类型2:00 kW(一些数字后跟一个空格,然后是kW)
类型4:00 kVA(一些数字后跟一个空格,然后是kVA)
类型3:000 kVAh(一些数字后跟一个空格,然后是kVAh)

示例:
 1.“您在7天内节省了1,71,252卢比”应更改为

You Saved <span class="highlight">₹ 1,71,252</span> in 7 days
  1. “节能量:203 kW”更改为
Savings: <span class="highlight">203 kW</span>
  1. “消耗量:225 kVAh”更改为
Consumption: <span class="highlight">225 kVAh</span>

以前,我曾在regex的Javascript Flavor中尝试过此操作:

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

但这还不够令人满意,因为它似乎突出显示了字符串中的所有数字。 我是regex的新手,只是不能将所有regex总结为一个。 这是我能够为货币部分编写的正则表达式

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 个答案:

答案 0 :(得分:1)

您可以使用此正则表达式,

d2

并替换为

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

Demo

JS代码演示

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