This translation is incomplete. Please help translate this article from English

Phương thức test() thực hiện tìm kiếm giữa một biểu thức chính quy và một chuỗi được chỉ định. Returns true or false.




The string against which to match the regular expression.


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


Use test() whenever you want to know whether a pattern is found in a string. test() returns a boolean, unlike the method, which returns the index (or -1 if not found). To get more information (but with 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.


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). It is worth noting that the lastIndex will not reset when testing a different string.

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

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

// regex.lastIndex is at 6
regex.test('foobar') //false

Using the same mechanism the following example counts the total number of words in a string:

function countWords (sText) {

  for (var rWord = /\w+/g, nCount = 0; rWord.test(sText); nCount++);

  return nCount;


console.log(countWords("What a beautiful day!")); // 4


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.
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'RegExp.test' in that specification.
ECMAScript Latest Draft (ECMA-262)
The definition of 'RegExp.test' in that specification.

Browser compatibility

Update compatibility data on GitHub
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung InternetNode.js
testChrome Full support 1Edge Full support 12Firefox Full support 1IE Full support 4Opera Full support YesSafari Full support 1WebView Android Full support 1Chrome Android Full support 18Firefox Android Full support 4Opera Android Full support YesSafari iOS Full support 1Samsung Internet Android Full support 1.0nodejs Full support Yes


Full support  
Full support

Firefox-specific notes

Prior to Firefox 8, 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