2015-06-04 90 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

相關問題