RegEx - 如何将PERCENTAGE验证嵌入到我的CURRENCY验证中

时间:2018-02-06 20:46:04

标签: javascript regex validation currency percentage

我需要验证一个可以输入CURRENCY,NUMERIC或PERCENTAGE的字段。我没有立刻看到所有3个条件的帖子,所以想问社区。

我在这里找到了以下代码(感谢Gary !!),它同时适用于验证货币或数字。
(?=.)^\$?(([1-9][0-9]{0,2}(,[0-9]{3})*)|[0-9]+)?(\.[0-9]{1,2})?$

Regex currency validation

您如何更新此表达以验证百分比? 基本上我想在IF的最后端允许百分号     - 他们没有输入美元符号
    - (如果可能的话,我还要验证,如果他们输入百分比符号,那么该值不能超过100,但我可以没有这个验证)

1 个答案:

答案 0 :(得分:1)

我可能会想到一个更干净的方法,以后再做,但现在这应该有效

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

它只需要从我借来的正则表达式并添加

  • 最后一个可选的'%'(除了开头已经选择的'$'):%?
  • 负面预测,检查它是否同时包含:(?!\$.+?%)
  • 的正向前瞻确保它有一个或另一个(因为它们都是可选的):(?=\$.+|.+%) 确保某处有一个数字(因为所有内容都是可选的):{ {1}}