The regular expression ^(((d{3}) ?)|(d{3}-))?d{3}-d{4}$
matches strings of the form XXX-XXX-XXXX
and XXX-XXXX
(am I missing out something?).
It doesn't, however, match (XXX) XXX-XXXX
and (XXX) XXX-XXX-XXXX
as well (which I need it to match).
Can you help me fix it so that it matches the formats
????
XXX-XXX-XXXX
,
XXX-XXXX
,
(XXX) XXX-XXXX
,
(XXX) XXX-XXXX
without causing it to match other string formats which I don't want?