gpt4 book ai didi

regex - 调整正则表达式以在可选小数点后要求 2 位数字?

转载 作者:行者123 更新时间:2023-12-02 17:42:20 25 4
gpt4 key购买 nike

我相信我已经找到了“完美”的正则表达式来检查 jQuery Validate 中的货币,除了它似乎允许用户在末尾放置一个单独的小数或在小数后放置一个小数。

匹配:700. 和 3.0

正则表达式:

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

我一直在玩它 http://gskinner.com/RegExr/但似乎无法在正确的地方修改它来解决我的小数问题。

目前它符合我需要的一切:

700,000700,000.00700000

这里是 jQuery 验证器 addMethod,使用@Kolink 的正则表达式供您好奇:

jQuery.validator.addMethod("currency", function(value, element) {
return this.optional(element) || /^\$?(?=.)(?:[1-9]\d{0,2}(?:,?\d{3})*)?(?:\.\d{2})?$/.test(value);
}, "Please enter a valid number.");

最佳答案

在每种情况下,您的正则表达式都在说“blah blah blah,然后是可选的小数点,后跟零到两位数”。

试试这个:

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

这是一个简单得多的正则表达式,它可以完成您当前正则表达式所做的一切......但更好。

分解:

  • ^ 字符串开始
  • \$? 可选的美元符号
  • (?=.)至少需要一个字符(因为你的要求是整个部分可选,小数部分可选,但至少需要一个)
  • (?:[1-9]\d{0,2}(?:,?\d{3}))*)? 可选地匹配一个整数。这个整数可能是也可能不是千位分隔的。必须以非零数字开头。
  • (?:\.\d{2})? 可选择匹配一个点后跟两个数字。
  • $ 字符串结尾

关于regex - 调整正则表达式以在可选小数点后要求 2 位数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19149234/

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