包含金额的正则表达式

时间:2011-12-10 20:23:02

标签: regex

这个正则表达式

/^\d{1,6}(?:\.\d{0,2})?$/

将用户限制为仅6位数。

  1. 如何使此正则表达式允许任意数量的数字(无最大限制)
  2. 如何使此正则表达式可选

3 个答案:

答案 0 :(得分:2)

假设您只是指任意数字后跟任意单个字符后跟2位数字,请使用:

/^\d+(?:.\d{0,2})?$/

如果0没问题,那么:

/^\d*(?:.\d{0,2})?$/

我认为你实际上是在试图找到货币价值(美元和美分),而这可能就是这样:

/^\d*(?:\.\d{0,2})?$/

答案 1 :(得分:2)

你的正则表达式将它限制为1-6位数,然后是可选的0-2小数。

要删除限制,请移除{1,6}并替换为+并将其设为可选,请换入(...)?

/(^\d+(?:\.\d{0,2})?$)?/

这使得输入(如果提供)仍然需要小数点前至少1位数。

答案 2 :(得分:1)

要使第一部分与一个或多个数字匹配,您可以将其更改为/^\d+(?:.\d{0,2})?$/

你对'可选'的意思有点混乱,所以我不确定在那里建议什么。