Regular Expressions: Substitutions - Doc JavaScript | WebReference

Regular Expressions: Substitutions - Doc JavaScript

Unix Regular Expressions


In this section we'll discuss the substitution operator, as implemented in Perl. In the second part of the column we'll discuss JavaScript's implementation, which differs only in syntax.

So far we've discussed ordinary patterns (/.../). However, Perl (and JavaScript) support another powerful operator, which performs substitutions in a string. Its syntax in Perl is:


JavaScript supports only the /i and /g modifiers.

The substitution operator searches a string for PATTERN, and, if found, replaces the match (not the pattern, of course) with the REPLACEMENT text, and returns the number of substitutions made (this can be more than one if you use the /g modifier).

The REPLACEMENT can also consist of backreferences. The classic substitution example is one that swaps the first two words of a string:

s/(\S+)\s+(\S+)/$2 $1/

The first two words, each matched by the sub-pattern \S+, are surrounded by parentheses that enable backreferences. So $1 reflects the first word in the string, and $2 reflects the second one. In this case, it makes no sense to use the /g modifier, because we are interested in swapping once the first two words.

Created: October 23, 1997, 1997
Revised: October 12, 1998