JS .replace与正则表达式

时间:2016-08-10 11:03:18

标签: javascript regex string

我有这样的文字

对(99.99руб。)或 留空(руб.99.99)或 正确的空间(99.99руб。)或 左(руб.99.99)

我想用我的新符号找到并更改货币符号。

这是我的代码

var str = "Right (99.99руб.)",
    symbol = '&&';

console.log(str.replace(/\(\d+\.?\d+\s?(.+)\)|\(([^0-9^\s]+)\s?\d+\.\d+\)/g, symbol))

但它取代了我用regex(“(99.99руб。)”)找到的所有文本,而不是捕获组中的文本(“руб。”)。

如何只替换匹配的文字?

P.S提前谢谢 P.S.S抱歉我的英文

1 个答案:

答案 0 :(得分:0)

您可以使用:

руб\.\ ?(\d[\d.]+)|(\d[\d.]*)\ ?руб

并将其替换为$1$2&&,请参阅a demo on regex101.com

<小时/> 在JavaScript

var string = 'Right (99.99руб.) OR Left with space (руб. 99.99) OR Right with space (99.99 руб.) OR Left (руб.99.99)';
var re = /руб\.\ ?(\d[\d.]+)|(\d[\d.]*)\ ?руб/g;
string = string.replace(re, '$1$2&&');
alert(string);

jsfiddle.net上查看JS小提琴。