首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

regExp.test

test()方法执行一个检索,用来查看正则表达式与指定的字符串是否匹配。返回truefalse

语法

代码语言:javascript
复制
regexObj.test(str)

参数

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

返回值

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

描述

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

示例

使用test()

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

代码语言:javascript
复制
var str = 'hello world!';
var result = /^hello/.test(str);
console.log(result); // true

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

代码语言:javascript
复制
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属性值).

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

代码语言:javascript
复制
var regex = /foo/g;

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

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

规范

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

?

浏览器兼容性

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)

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com