MDN will be in maintenance mode on Wednesday September 20th, starting at 10 AM Pacific / 5 PM UTC, for about 1 hour.

The test() method executes a search for a match between a regular expression and a specified string. Returns true or false.

Syntax

regexObj.test(str)

Parameters

str
The string against which to match the regular expression.

Returns

true if there is a match between the regular expression and the specified string; otherwise, false.

Description

Use test() whenever you want to know whether a pattern is found in a string (similar to the String.prototype.search() method, difference is that test() returns a boolean, whilst search() returns the index (or -1 if not found); for more information (but slower execution) use the exec() method (similar to the String.prototype.match() method). As with exec() (or in combination with it), test() called multiple times on the same global regular expression instance will advance past the previous match.

Examples

Using test()

Simple example that tests if "hello" is contained at the very beginning of a string, returning a boolean result.

var str = 'hello world!';
var result = /^hello/.test(str);
console.log(result); // true

The following example logs a message which depends on the success of the test:

function testinput(re, str) {
  var midstring;
  if (re.test(str)) {
    midstring = ' contains ';
  } else {
    midstring = ' does not contain ';
  }
  console.log(str + midstring + re.source);
}

Using test() on a regex with the global flag

If the regex has the global flag set, test() will advance the lastIndex of the regex. A subsequent use of test() will start the search at the substring of str specified by lastIndex (exec() will also advance the lastIndex property).

The following example demonstrates this behaviour:

var regex = /foo/g;

// regex.lastIndex is at 0
regex.test('foo'); // true

// regex.lastIndex is now at 3
regex.test('foo'); // false

Specifications

Specification Status Comment
ECMAScript 3rd Edition (ECMA-262) Standard Initial definition. Implemented in JavaScript 1.2.
ECMAScript 5.1 (ECMA-262)
The definition of 'RegExp.test' in that specification.
Standard  
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'RegExp.test' in that specification.
Standard  
ECMAScript Latest Draft (ECMA-262)
The definition of 'RegExp.test' in that specification.
Living Standard  

Browser compatibility

Feature Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari
Basic support (Yes) (Yes) (Yes) (Yes) (Yes) (Yes)
Feature Android Chrome for Android Edge Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support (Yes) (Yes) (Yes) (Yes) (Yes) (Yes) (Yes)

Gecko-specific notes

Prior to Gecko 8.0 (Firefox 8.0 / Thunderbird 8.0 / SeaMonkey 2.5), test() was implemented incorrectly; when it was called with no parameters, it would match against the value of the previous input (RegExp.input property) instead of against the string "undefined". This is fixed; now /undefined/.test() correctly results in true, instead of an error.

See also

Document Tags and Contributors

 Last updated by: Joel-Kornbluh,