gpt4 book ai didi

javascript - JavaScript 的英国货币正则表达式

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:20:10 24 4
gpt4 key购买 nike

我在寻找匹配英国货币(即 £13.00、£9,999.99 和 £12,333,333.02)的正则表达式,但不允许负值 (-£2.17) 或零值(£0.00 或 0)。

我曾尝试自己创建一个,但我一头雾水!

非常感谢任何帮助。

谢谢!

最佳答案

这就可以了(大部分情况下...)

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

利用 ^ 和 $ 确保字符串中没有负数或其他字符,并假定将使用逗号。英镑符号和便士是可选的。

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

更新:有人指出,以上不会匹配 £0.01。下面的改进但是现在有一定程度的复杂性,首先测试/[1-9]/然后再测试上面可能更好 - 还没有对它进行基准测试。

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

简要说明:

  • 匹配字符串开头后跟可选的“£”
  • 然后匹配其中一个:
    • 一个 >1 英镑的金额,可以用逗号分隔的分组和可选的便士
    • 或 <£1 >=£0.10 金额
    • 或 <=£0.09 金额
  • 然后匹配行尾

您需要添加到正则表达式中的便士分数(上面的零)越多,效率就越低。

关于javascript - JavaScript 的英国货币正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/995237/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com