Regex for Bitcoin Address
Regex Pattern
^(?:bc1|[13])[a-zA-HJ-NP-Z0-9]{25,39}$Bitcoin address (Legacy P2PKH, P2SH, or Bech32)
Quick Answer
The regex pattern for bitcoin address is `^(?:bc1|[13])[a-zA-HJ-NP-Z0-9]{25,39}$`. Bitcoin address (Legacy P2PKH, P2SH, or Bech32). This works in JavaScript, Python, Ruby, PHP, Java, and most regex engines that support PCRE syntax.
Test Examples
| Input | Result |
|---|---|
| 1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2 | ✓ Matches |
| 3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy | ✓ Matches |
| bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4 | ✓ Matches |
| 0BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2 | ✗ No match |
| notabitcoinaddress | ✗ No match |
| 1234 | ✗ No match |
Code Examples
javascript
const regex = /^(?:bc1|[13])[a-zA-HJ-NP-Z0-9]{25,39}$/;
const isValid = regex.test(value);python
import re
pattern = r'^(?:bc1|[13])[a-zA-HJ-NP-Z0-9]{25,39}$'
if re.match(pattern, value):
print("valid")ruby
pattern = /^(?:bc1|[13])[a-zA-HJ-NP-Z0-9]{25,39}$/
if value =~ pattern
puts "valid"
endphp
if (preg_match('/^(?:bc1|[13])[a-zA-HJ-NP-Z0-9]{25,39}$/', $value)) {
echo "valid";
}java
String pattern = "^(?:bc1|[13])[a-zA-HJ-NP-Z0-9]{25,39}$";
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