Regex for Currency Amount (Generic)
Regex Pattern
^[A-Z]{3}\s?\d{1,3}(?:[,.]\d{3})*(?:[,.]\d{1,2})?$Currency amount with ISO 4217 code (e.g. USD 1,234.56)
Quick Answer
The regex pattern for currency amount (generic) is `^[A-Z]{3}\s?\d{1,3}(?:[,.]\d{3})*(?:[,.]\d{1,2})?$`. Currency amount with ISO 4217 code (e.g. USD 1,234.56). This works in JavaScript, Python, Ruby, PHP, Java, and most regex engines that support PCRE syntax.
Test Examples
| Input | Result |
|---|---|
| USD 1,234.56 | ✓ Matches |
| EUR1000 | ✓ Matches |
| GBP 99.99 | ✓ Matches |
| $100 | ✗ No match |
| 1234.56 | ✗ No match |
| US 100 | ✗ No match |
Code Examples
javascript
const regex = /^[A-Z]{3}\s?\d{1,3}(?:[,.]\d{3})*(?:[,.]\d{1,2})?$/;
const isValid = regex.test(value);python
import re
pattern = r'^[A-Z]{3}\s?\d{1,3}(?:[,.]\d{3})*(?:[,.]\d{1,2})?$'
if re.match(pattern, value):
print("valid")ruby
pattern = /^[A-Z]{3}\s?\d{1,3}(?:[,.]\d{3})*(?:[,.]\d{1,2})?$/
if value =~ pattern
puts "valid"
endphp
if (preg_match('/^[A-Z]{3}\s?\d{1,3}(?:[,.]\d{3})*(?:[,.]\d{1,2})?$/', $value)) {
echo "valid";
}java
String pattern = "^[A-Z]{3}\\s?\\d{1,3}(?:[,.]\\d{3})*(?:[,.]\\d{1,2})?$";
boolean isValid = value.matches(pattern);Frequently Asked Questions
Related Regex Patterns
Visa Credit Card
Visa card — starts with 4, 13 or 16 digits total
Mastercard Credit Card
Mastercard — 16 digits starting with 51-55 or 2221-2720
American Express Card
Amex — 15 digits starting with 34 or 37
Any Credit Card
Visa, Mastercard, Amex, Discover, Diners
Discover Credit Card
Discover card — starts with 6011 or 65, 16 digits total
Diners Club Credit Card
Diners Club card — starts with 300-305, 36, or 38, 14 digits total