繁体   English   中英

JS。用正则表达式替换

[英]JS .replace with regex

我有这样的文字

右侧(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))

但是它将用正则表达式(“(99.99руб。)”)替换我找到的所有文本,而不是捕获的组(“руб。”)中的文本。

如何只替换匹配的文本?

PS预先感谢PSS对不起,我的英语

您可以使用:

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

并将其替换为$1$2&& ,请参阅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小提琴。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM