Javascript带空格的货币金额的正则表达式

时间:2014-07-04 07:33:26

标签: javascript regex currency

我有这个正则表达式

/^[',",\+,<,>,\(,\*,\-,%]?([£,$,€]?\d+([\,,\.]\d+)?[£,$,€]?\s*[\-,\/,\,,\.,\+]?[\/]?\s*)+[',",\+,   <,>,\),\*,\-,%]?$/

它很好地匹配55.5美元,但在我的测试数据中,我有一些价值,如$ 55.5(我的意思是,它在$符号后面有一个空格)。

此链接上的答案对我不起作用。 Currency / Percent Regular Expression

那么,如何更改它以接受空格呢?

2 个答案:

答案 0 :(得分:1)

尝试关注RegEx

/^[',",\+,<,>,\(,\*,\-,%]?([£,$,€]?\s*\d+([\,,\.]\d+)?[£,$,€]?\s*[\-,\/,\,,\.,\+]?[\/]?\s*)+[',",\+,   <,>,\),\*,\-,%]?$/

让我知道它是否有效!

<强> Demo Here

答案 1 :(得分:1)

TLDR:

/^[',",\+,<,>,\(,\*,\-,%]?([£,$,€]?\s*\d+([\,,\.]\d+)?[£,$,€]?\s*[\-,\/,\,,\.,\+]?[\/]?\s*)+[',",\+,   <,>,\),\*,\-,%]?$/

科学位

好吧,我猜你没有构建原始的正则表达式,所以这里是它的一部分,加上标记:

^ # match from the beginning of the string
[',",\+,<,>,\(,\*,\-,%]?    # optionally one of these symbols
(                           # start a group
   [£,$,€]?                   # optionally one of these symbols
   \s*                        # <--- NEW ADDITION: optionally one or more whitespace
   \d+                        # then one or more decimal digits
   (                          # start group 
      [\,,\.]                   # comma or a dot
      \d+                       # then one or more decimal digits
   )?                         # group optional (comma/dot and digits or neither)
   [£,$,€]?                   # optionally one of these symbols
   \s*                        # optionally whitespace
   [\-,\/,\,,\.,\+]?          # optionally one of these symbols
   [\/]?                      # optionally a /
   \s*                        # optionally whitespace
)+                          # this whole group one or more times
[',",\+,   <,>,\),\*,\-,%]? # optionally one of these symbols
$ # match to the end of the string

这很大程度上是在围绕货币金额进行匹配,所以你可以减少它。