Book Image

Object-Oriented JavaScript

By : Stoyan Stefanov, Stoyan STEFANOV
Book Image

Object-Oriented JavaScript

By: Stoyan Stefanov, Stoyan STEFANOV

Overview of this book

Table of Contents (18 chapters)
Object-Oriented JavaScript
Credits
About the Author
About the Reviewers
Preface
Built-in Functions
Regular Expressions
Index

RegExp


You can create a regular expression object by using the RegExp() constructor and passing the expression pattern as the first parameter and the pattern modifiers as the second.

>>> var re = new RegExp('[dn]o+dle', 'gmi');

This matches "noodle", "doodle", "doooodle", and so on. It's equivalent to using the regular expression literal:

>>> var re = ('/[dn]o+dle/gmi'); // recommended

Chapter 4 and Appendix D contain more information on regular expressions and patterns.

Members of RegExp Objects

Property/Method

Description

global

Read-only. true if the g modifier was set when creating the regexp object.

ignoreCase

Read-only. true if the i modifier was set when creating the regexp object.

multiline

Read-only. true if the m modifier was set when creating the regexp object

lastIndex

Contains the position in the string where the next match should start. test() and exec() set this position after a successful match. Only relevant when the g (global) modifier was used.

>>> var re = /[dn]o+dle/g;
>>> re.lastIndex

0

>>> re.exec("noodle doodle");

["noodle"]

>>> re.lastIndex

6

>>> re.exec("noodle doodle");

["doodle"]

>>> re.lastIndex

13

>>> re.exec("noodle doodle");

null

>>> re.lastIndex

0

source

Read-only. Returns the regular expression pattern (without the modifiers).

>>> var re = /[nd]o+dle/gmi;
>>> re.source

"[nd]o+dle"

exec(string)

Matches the input string with the regular expression. On a successful match returns an array containing the match and any capturing groups. When the g modifier is used, it matches the first occurrence and sets the lastIndex property. Returns null when there's no match.

>>> var re = /([dn])(o+)dle/g;
>>> re.exec("noodle doodle");

["noodle", "n", "oo"]

>>> re.exec("noodle doodle");

["doodle", "d", "oo"]

test(string)

Same as exec() but only returns true or false.

>>> /noo/.test('Noodle')

false

>>> /noo/i.test('Noodle')

true