2015-06-04 95 views
1

我有一个表单提交,我有人输入金额。正则表达式用于输入数字和。允许逗号

我有罚款拒绝$和任何数字但它是允许逗号,我似乎无法让它停止这样做。

代码是ColdFusion,但它不是CF问题,而是RegEx。

<cfinput type="Text" 
    name="sp_price" 
    value="0" 
    message="Add-on Price - Numbers Only" 
    validate="regular_expression" 
    pattern="^[0-9].*$" required="No" size="5"> 

接受1000 1000.00和1,000.00和1,000,我不想接受逗号。

在此先感谢 安迪

+0

一个点意味着*任何*性格 – PeeHaa

+0

嗨PeeHaa。请看下面我对迈克尔的回复。 – Andy

+0

为什么? :P – PeeHaa

回答

0

如果要排除的字符,该格式将[^,]

例子:

pattern="^([0-9]|[^,$\w])*$" 

编辑:排除美元和单词字符https://regex101.com/r/tK5zU7/1

+0

谢谢迈克尔。完美 – Andy

+0

我想什么让我困惑的是在一个正则表达式在另一个RegEx失败。 对于电话号码,我使用“^ [()。+ \ d - ] {1,20} $”,因此无论国际号码如何输入(),它都将起作用。 + - 等我真的不在乎数字代码是什么,如果它符合他们的国家。只是保护网站。此代码不接受逗号。 – Andy

+1

这允许除逗号之外的任何内容,而不是只有数字。 '[0-9] | [^,]'没有多大意义,因为'[^,]'已经匹配了[0-9]' – PeeHaa

0

你可以让你的正则表达式更严格的是这样的:

"^[0-9]+(?:\.[0-9]{1,2})?$" 

这将只允许整数或小数,但没有逗号或$

0

你可以试试这个:

^\d*(\.\d{2})?$

  • 1000 - 匹配
  • 1000.00 - 匹配
  • 1,000.00 - 不匹配
  • 1000 - 不匹配

任何长度的全数字和可选长度为二位小数相匹配。尝试下面的链接。

https://regex101.com/r/kN8zL0/1

相关问题