July 2007
Intermediate to advanced
128 pages
2h 39m
English
Example 1-25. Simple match
//Find Spider-Man, Spiderman, SPIDER-MAN, etc.
var dailybugle = "Spider-Man Menaces City!";
//regex must match entire string
var regex = /spider[- ]?man/i;
if (dailybugle.search(regex)) {
//do something
}Example 1-26. Match and capture group
//Match dates formatted like MM/DD/YYYY, MM-DD-YY,...
var date = "12/30/1969";
var p =
new RegExp("^(\\d\\d)[-/](\\d\\d)[-/](\\d\\d(?:\\d\\
d)?)$");
var result = p.exec(date);
if (result != null) {
var month = result[1];
var day = result[2];
var year = result[3];Example 1-27. Simple substitution
//Convert <br> to <br /> for XHTML compliance
String text = "Hello world. <br>";
var pattern = /<br>/ig;
test.replace(pattern, "<br />");Example 1-28. Harder substitution
//urlify - turn URLs into HTML links
var text = "Check the web site, http://www.oreilly.com/catalog/regexppr.";
var regex =
"\\b" // start at word boundary
+ "(" // capture to $1
+ "(https?|telnet|gopher|file|wais|ftp) :"
// resource and colon
+ "[\\w/\\#~:.?+=&%@!\\-]+?" // one or more valid chars
// take little as possible
+ ")"
+ "(?=" // lookahead
+ "[.:?\\-]*" // for possible punct
+ "(?:[^\\w/\\#~:.?+=&%@!\\-]"// invalid character
+ "|$)" // or end of string
+ ")";
text.replace(regex, "<a href=\"$1\">$1</a>");