我需要使用正則表達式來驗證輸入 $ 10.00 0r($ 10.00)中的下列金額格式...即金額應該是帶有$ sign或沒有括號。如果是其他格式,驗證必須失敗。請在此建議。
回答
UPDATE:
基於下面的意見和關於R2格式問題的意見,修改後的正則表達式是:
((\($\d+\.\d{2}\))|($\d+\.\d{2}))
早前出現過:
試試這個正則表達式:
\$\s*\(?\d+(\.\d+)?\)?
\$
- 相匹配的美元符號
\s*
- 美元符號和數字或支架
\(?
匹配任何空白betn - 相匹配的可選左括號
\d+
- 數量的整數部分匹配
(\.\d+)?
- 比賽用點
\)?
可選的小數部分 - 匹配的可選右括號
所以,你可以試試這個XSD驗證:
<xs:simpleType name="CurrencyFormat">
<xs:restriction base="xs:string">
<xs:pattern value="\$\s*\(?\d+(\.\d+)?\)?" />
</xs:restriction>
</xs:simpleType>
不錯,但(a)您不需要(也不一定)在XSD正則表達式中轉義$,並且(b)您不想接受沒有匹配的左括號右括號,反之亦然。而且(c)雖然OP不清楚,但他們似乎想要精確到小數點右側的兩位數字,這與貨幣金額相同。 –
該模式應該適用於$ 10.00和($ 10.00)格式。我希望你的答案可以用於第一個,但第二個? –
這也允許:'$ 10.00)'和'($ 10.00' –
試試這個:
^(\(\$\d+\.\d{2}\)|\$\d+\.\d{2})$
我不認爲xsd驗證支持錨標籤 – Kash
錨標籤?反正,在RegexCoach它似乎工作,可能你需要檢查xsd文檔,看看它的正則表達式如何映射到標準正則表達式 –
從OP的問題標籤來看,我懷疑需要符合XSD的正則表達式;而不是'^(\( \ $ \ d + \。\ d {2} \)| $ \ d + \ $。 \ d {2} \)'。 –
- 1. 帶括號的正則表達式
- 2. 帶括號的正則表達式
- 3. 帶開括號的正則表達式
- 4. 正則表達式找到金額不帶尾隨%符號
- 5. 帶括號和逗號的數字的JavaScript正則表達式
- 6. 正則表達式帶或不帶+ 1S
- 7. 帶括號的名字的正則表達式
- 8. 使用正則表達式分解帶括號的字符串
- 9. 帶括號編號的文件名上的正則表達式?
- 10. 帶有括號和小數點的Python正則表達式
- 11. 帶有多個括號的javascript正則表達式
- 12. 正則表達式不帶符號
- 13. 帶引號的正則表達式
- 14. 帶引號的bash正則表達式?
- 15. preg_match_all帶引號的正則表達式
- 16. 正則表達式匹配帶括號的詞嗎?
- 17. 帶或不帶「 - 」的正則表達式匹配組
- 18. 正則表達式:帶有可選引號的雙字前綴
- 19. 帶有「$」符號的正則表達式字符串
- 20. 金額的正則表達式
- 21. Golang正則表達式替換不包括帶引號的字符串
- 22. 帶有口音和空格的正則表達式字段
- 23. 帶有一個或多個字符的正則表達式組
- 24. Python - 帶有URL的正則表達式
- 25. 帶有=和a的正則表達式;
- 26. 帶有可選|的正則表達式
- 27. 帶有變量的正則表達式
- 28. 帶有變量的正則表達式
- 29. 帶有preg_match的PHP正則表達式
- 30. 帶有美元符號的正數表達式的正則表達式
這是什麼 「R2」 格式?它是否對小數位數進行限制? – Kash
金額只有兩位小數 –