Movatterモバイル変換


[0]ホーム

URL:


  1. 面向开发者的 Web 技术
  2. JavaScript
  3. JavaScript 参考
  4. JavaScript 标准内置对象
  5. RegExp
  6. RegExp.prototype.test()

此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。

View in EnglishAlways switch to English

RegExp.prototype.test()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨2015年7月⁩.

RegExp 实例的test() 方法使用正则表达式在指定字符串中执行搜索。如果存在匹配,则返回true, 否则返回false

JavaScript 的RegExp 对象在设置了global(全局)或sticky(粘性)标志时(例如/foo/g/foo/y),是有状态的。它们会从上一次匹配中保存一个lastIndex 属性。利用这个特性,test() 方法可以用来在一段文本字符串中(配合捕获组)迭代查找多个匹配项。

尝试一下

const str = "table football";const regex = new RegExp("foo*");const globalRegex = new RegExp("foo*", "g");console.log(regex.test(str));// Expected output: trueconsole.log(globalRegex.lastIndex);// Expected output: 0console.log(globalRegex.test(str));// Expected output: trueconsole.log(globalRegex.lastIndex);// Expected output: 9console.log(globalRegex.test(str));// Expected output: false

语法

regexObj.test(str)

参数

str

用来与正则表达式匹配的字符串

返回值

如果正则表达式与指定的字符串匹配,返回true;否则false

描述

当你想要知道一个正则表达式是否与指定的字符串匹配时,就可以使用test()(类似于String.prototype.search() 方法),差别在于 test 返回一个布尔值,而 search 返回索引(如果找到)或者 -1(如果没找到);若想知道更多信息(然而执行比较慢),可使用exec() 方法(类似于String.prototype.match() 方法)。和exec() (或者组合使用),一样,在相同的全局正则表达式实例上多次调用test将会越过之前的匹配。

示例

使用test()

一个简单的例子,测试 "hello" 是否包含在字符串的最开始,返回布尔值。

js
let str = "hello world!";let result = /^hello/.test(str);console.log(result);// true

下例打印一条信息,该信息内容取决于是否成功通过指定测试:

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

当设置全局标志的正则使用test()

如果正则表达式设置了全局标志,test() 的执行会改变正则表达式lastIndex属性。连续的执行test()方法,后续的执行将会从 lastIndex 处开始匹配字符串,(exec() 同样改变正则本身的lastIndex 属性值).

下面的实例表现了这种行为:

js
var regex = /foo/g;// regex.lastIndex is at 0regex.test("foo"); // true// regex.lastIndex is now at 3regex.test("foo"); // false

规范

Specification
ECMAScript® 2026 Language Specification
# sec-regexp.prototype.test

浏览器兼容性

参见

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp