Posted over 3 years ago. Visible to the public. Repeats.

Using regular expressions in JavaScript

Regular expressions in Javascript are represented by a RegExp object. There also is a regex literal as in many other languages: /regex/. However, they are used slightly differently.

Regex literal

  • Usage: /foo+/
  • Shorthand for creating a regular expression object

RegExp() object

  • Usage: Regexp("foo+") or new RegExp("foo+")
  • No surrounding slashes required (they're the literal markers)
  • Since the argument is a string, backslashes need to be escaped as well: RegExp("\\d+")


  • Regex objects never equal each other
  • The argument to /regex/.test(...) is converted to a string as defined by the specs, which means e.g. .test(null) is equal to .test("null").
  • Globally matching regex objects remember the last index they matched. Multiple calls to test() will advance this pointer:

    > matcher = new RegExp("foo", "g") // <- "global" flag > matcher.test("foobar") // => true > matcher.lastIndex // => 3 > matcher.test("foobar") // => false > matcher.lastIndex // => 0

    This does not happen when creating a new regex object each run, as with /foo/g.test("foobar"). Note that when using the test() method, the g flag does not help at all. Use match() if you want an array of matches.

makandra has been working exclusively with Ruby on Rails since 2007. Our laser focus on a single technology has made us a leader in this space.

Owner of this card:

Dominik Schöler
Last edit:
2 months ago
by Dominik Schöler
About this deck:
We are makandra and do test-driven, agile Ruby on Rails software development.
License for source code
Posted by Dominik Schöler to makandra dev
This website uses cookies to improve usability and analyze traffic.
Accept or learn more