Regular Expressions: Matching Operator Modifiers - Doc JavaScript
Unix Regular Expressions
Matching Operator Modifiers
Take a look at the following regular expressions (patterns):
m/abc/
/abc/
Regular expressions are normally delimited by forward slashes. In Perl you can use m@
and @
as delimiters, where @
can be any non-alphanumeric, non-whitespace character. The m
is optional if you use forward slashes. In JavaScript you must use forward slashes, without an initial m
. Here's an example of a regular expression that does not utilize forward slashes (not valid in JavaScript):
m^abc^
Back to the example. This regexp matches any one of the following strings:
"abcdef"
"defabc"
".=.abc.=."
But this expression doesn't match any of these:
"fedcba"
"ab c"
"JavaScript"
The matching operators (m//
and s///
) can have various modifiers, some of which affect the interpretation of the regular expression inside:
Modifier | Description |
g | Do global pattern matching. |
i | Do case-insensitive pattern matching. |
m * | Treat the string as multiple lines. |
s * | Treat the string as a single line. |
x * | Ignore whitespace within a pattern. |
The following pattern matches both "javascript"
and "JavaScript"
:
/JavaScript/i
The /i
modifier instructs the Engine to perform case-insensitive pattern matching, so the case of alphabetic characters doesn't matter.
The /x
modifier tells the Engine to ignore whitespace that is not backslashed or within a character class. Use this modifier to break up your regular expression into more readable parts. The following patterns match "abc"
:
/a b c/x
m#a b c#x
Although the /x
modifier is a documented feature, it is not supported by Navigator 4.0x or Internet Explorer 4.0. The only modifiers that are currently supported by Navigator 4.0x and Internet Explorer 4.0 are /i
and /g
. You can attach both modifiers to a single pattern in the following fashion:
/abc/gi
Created: October 23, 1997, 1997
Revised: December 4, 1997
URL: https://www.webreference.com/js/column5/modifiers.html