CHAPTER 17
Regular Expressions
Regular expressions provide sophisticated string matching functionality. If you want
to match things that “look like” an email address or a URL or a phone number, regu‐
lar expressions are your friends. A natural complement to string matching is string
replacement, and regular expressions support that as well—for example, if you want
to match things that look like email addresses and replace them with a hyperlink for
that email address.
Many introductions to regular expressions use esoteric examples such as “match
aaaba and abaaba but not abba,” which has the advantage of breaking the complexity
of regular expressions into neat chunks of functionality, but has the disadvantage of
seeming very pointless (when do you ever need to match aaaba?). I am going to try to
introduce the features of regular expressions using practical examples from the get-
go.
Regular expressions are often abbreviated “regex” or “regexp”; in this book, we’ll use
the former for brevity.
Substring Matching and Replacing
The essential job of a regex is to match a substring within a string, and optionally
replace it. Regexes allow you to do this with incredible power and flexibility, so before
we dive into it, let’s briefly cover the non-regex search and replace functionality of
String.prototype
, which is suitable for very modest search and replacement needs.
If all you need to do is determine if a specific substring exists in a bigger string, the
following
String.prototype
methods will suffice:
237