代码之家  ›  专栏  ›  技术社区  ›  Sniffer

javascript的英国货币正则表达式

  •  4
  • Sniffer  · 技术社区  · 17 年前

    我需要一个与英国货币匹配的正则表达式(即13.00、9999.99和12333333.02),但不允许负值(-2.17)或零值(0.00或0)。

    我试着自己创造一个,但我完全糊涂了!

    任何帮助都受到了极大的欢迎。

    谢谢!

    4 回复  |  直到 17 年前
        1
  •  5
  •   annakata    17 年前

    这将做到这一点(大多数情况下…)

    /^£?[1-9]{1,3}(,\d{3})*(\.\d{2})?$/
    

    编辑:意识到你说的非零,所以用[1-9]替换了第一个\d

    更新:有人指出,上述数值与0.01不匹配。以下改进

    /^£?(([1-9]{1,3}(,\d{3})*(\.\d{2})?)|(0\.[1-9]\d)|(0\.0[1-9]))$/
    

    • 匹配字符串开头,后跟可选的“”
    • :
      • a>1个金额,可进行逗号分隔分组和可选便士
      • 或a<1>=0.10金额
      • 或a<=0.09金额

        2
  •  4
  •   romosheb    14 年前

    在Unix/Linux下,并不总是可以在JavaScript文件中键入“”符号,所以我倾向于使用它的十六进制表示,因此:

    /^\xA3?\d{1,3}?([,]\d{3}|\d)*?([.]\d{1,2})?$/

        3
  •  0
  •   Svante    17 年前

    说明:

    • ^匹配字符串的开头或行的开头。
    • xA3匹配“”字符(字符代码163)
    • ?前一个标记的0和1之间匹配的量词。
    • {1,}匹配1个或多个前面的令牌。
    • \,匹配一个“,”字符(字符代码44)。