I am trying to come up with a regular expression to match Bitcoin addresses according to these specs:
A Bitcoin address, or simply address, is an identifier of 27-34 alphanumeric characters, beginning with the number 1 or 3 [...]
I figured it would look something like this
/^[13][a-zA-Z0-9]{27,34}/
Thing is, I'm not good with regular expressions and I haven't found a single source to confirm this would not create false negatives.
I've found one online that's ^1[1-9A-Za-z][^OIl]{20,40}
, but I don't even know what the [^OIl]
part means and it doesn't seem to match the 3
a Bitcoin address could start with.
[^OIl]
matches any character that's not O, I or l. The problems in your regex are:
$
at the end, so it'd match any string beginning with a BC address.{27,34}
- that should be {26,33}
However, as mentioned in a comment, a regex is not a good way to validate a bitcoin address.