【问题标题】:JavaScript Regexp replace with grouping Euro symbol'sJavaScript 正则表达式替换为分组欧元符号
【发布时间】:2017-12-06 14:56:04
【问题描述】:
在完全替换后尝试为​ € 14,50创建正则表达式必须只留下
14,50
也许有人可以帮助?
【问题讨论】:
-
欢迎来到 Stack Overflow!纯粹的代码编写请求在 Stack Overflow 上是题外话——我们希望这里的问题与特定的编程问题相关——但我们很乐意帮助您自己编写!告诉我们what you've tried,以及您遇到的问题。这也将有助于我们更好地回答您的问题。
标签:
javascript
regex
replace
regex-lookarounds
regex-group
【解决方案1】:
代码
See regex in use here
下面的正则表达式只是确保它前面没有#
[^#\d](\d+(?:,\d+)?)
或者:€ *(\d+(?:,\d+)?),确保它前面是 €,后面是任意数量的空格。
用法
var r = /[^#\d](\d+(?:,\d+)?)/g;
var s = `​ € 14,50`
console.log(r.exec(s)[1]);
替代方案
var r = /€ *(\d+(?:,\d+)?)/g;
var s = `​ € 14,50`
console.log(r.exec(s)[1]);
说明
-
[^#\d] 匹配集合中不存在的任何内容(除了# 和数字之外的任何内容)
-
(\d+(?:,\d+)?) 将以下内容捕获到捕获组 1
-
\d+ 匹配任意数字一次或多次
-
(?:,\d+)? 匹配零次或一次以下
-
, 匹配逗号字符 , 字面意思
-
\d+ 匹配任意数字一次或多次