JavaScript/Regular expressions

Overview
JavaScript implements regular expressions (regex for short) when searching for matches within a string. As with other scripting languages, this allows searching beyond a simple letter-by-letter match, and can even be used to parse strings in a certain format.

Unlike strings, regular expressions are delimited by the slash (/) character, and may have some options appended.

Regular expressions most commonly appear in conjunction with the string.match and string.replace methods.

At a glance, by example:

Compatibility
JavaScript's set of regular expressions follows the extended set. While copying a Regex pattern from JavaScript to another location may work as expected, some older programs may not function as expected.


 * In the search term, \1 is used to back reference a matched group, as in other implementations.
 * In the replacement string, $1 is substituted with a matched group in the search, instead of \1.
 * Example: "abbc".replace(/(.)\1/g, "$1") => "abc"
 * | is magic, \| is literal
 * ( is magic, \( is literal
 * The syntaxes (?=...), (?!...), (?<=...), and (?<!...) are not available.

Examples

 * Matching
 * string = "Hello world!".match(/world/);
 * stringArray = "Hello world!".match(/l/g); // Matched strings are returned in a string array
 * "abc".match(/a(b)c/)[1] => "b" // Matched subgroup is the second member (having the index "1") of the resulting array
 * Replacement
 * string = string.replace(/expression without quotation marks/g, "replacement");
 * string = string.replace(/escape the slash in this\/way/g, "replacement");
 * string = string.replace( ... ).replace ( ... ). replace( ... );
 * Test
 * if (string.match(/regexp without quotation marks/)) {

Modifiers
Single-letter modifiers:

Function call
For complex operations, a function can process the matched substrings. In the following code, we are capitalizing all the words. It can't be done by a simple replacement, as each letter to capitalize is a different character:

The function is called for each substring. Here is the signature of the function:


 * The first parameter is the substring that matches the pattern.
 * The next parameters are the captures in the substrings. There are as many parameters as there are captures.
 * The next parameter is the index of the beginning of the substring starting from the beginning of the text.
 * The last parameter is a remainder of the entire text.
 * The return value will be put in the text instead of the matching substring.