Availability
JavaScript 1.2; JScript 3.0; ECMAScript v3
Synopsis
string.match(regexp)Arguments
regexp
A RegExp object that specifies the pattern to be matched. If this
argument is not a RegExp, it is first converted to one by passing it
to the RegExp( ) constructor.
Returns
An array containing the results of the match. The contents of the
array depend on whether regexp has the
global g attribute set. Details on this return
value are given below.
Description
match( ) searches
string for one or more matches of
regexp. The behavior of this method
depends significantly on whether regexp
has the g attribute or not. See Chapter 10 for full details on regular expressions.
If regexp does not have the
g attribute, match( ) searches
string for a single match. If no match is
found, match( ) returns null.
Otherwise, it returns an array containing information about the match
that it found. Element 0 of the array contains the matched text. The
remaining elements contain the text that matched any parenthesized
subexpressions within the regular expression. In addition to these
normal array elements, the returned array also has two object
properties. The index property of the array
specifies the character position within
string of the start of the matched text.
Also, the input property of the returned array is
a reference to string itself.
If regexp has the g
flag, match( ) does a global search, searching
string for all matching substrings. It
returns null if no match is found, and it returns
an array if one or more matches are found. The contents of this
returned array are quite different for global matches, however. In
this case, the array elements contain each of the matched substrings
within string. The returned array does not
have index or input properties
in this case. Note that for global matches, match(
) does not provide information about parenthesized
subexpressions, nor does it specify where within
string each match occurred. If you need to
obtain this information for a global search, you can use
RegExp.exec( ).
Example
The following global match finds all numbers within a string:
"1 plus 2 equals 3".match(/\d+/g) // Returns ["1", "2", "3"]
The following nonglobal match uses a more complex regular expression
with several parenthesized subexpressions. It matches a URL, and its
subexpressions match the protocol, host, and path portions of the
URL:
var url = /(\w+):\/\/([\w.]+)\/(\S*)/;
var text = "Visit my home page at http://www.isp.com/~david";
var result = text.match(url);
if (result != null) {
var fullurl = result[0]; // Contains "http://www.isp.com/~david"
var protocol = result[1]; // Contains "http"
var host = result[2]; // Contains "www.isp.com"
var path = result[3]; // Contains "~david"
}
See Also
RegExp, RegExp.exec( ), RegExp.test( ), String.replace( ),
String.search( ); Chapter 10
•
Table of Contents
•
Index
•
Reviews
•
Examples
•
Reader Reviews
•
Errata
JavaScript: The Definitive Guide, 4th Edition
By
David Flanagan
Publisher
: O'Reilly
Pub Date
: November 2001
ISBN
: 0-596-00048-0
Pages
: 936
Slots
: 1
This fourth edition of the definitive reference to
JavaScript, a scripting language that can be embedded
directly in web pages, covers the latest version of the
language, JavaScript 1.5, as supported by Netscape 6 and
Internet Explorer 6. The book also provides complete
coverage of the W3C DOM standard (Level 1 and Level 2),
while retaining material on the legacy Level 0 DOM for
backward compatibility.