首页 > 编程笔记 > JavaScript笔记 > JS正则表达式
JS test()方法:检测一个字符串是否匹配某个正则表达式
JavaScript 正则表达式中的 test() 方法用来检测一个字符串是否匹配某个正则表达式
test() 方法的具体格式如下:
使用 test() 执行匹配时,IE 支持 RegExp.index 记录了匹配文本的起始下标位置、Regexp.lastIndex 记录下一次匹配的起始位置,但是其他浏览器不支持。
除了正则表达式内置方法外,字符串对象中很多方法也支持正则表达式的模式匹配操作,下面列表比较了字符串对象和正则表达式对象包含的 6 种模式匹配的方法,如表所示。
test() 方法的具体格式如下:
regexp.test(string)
regexp 表示正则表达式对象,参数 string 表示要检测的字符串。如果字符串 string 中含有与 regexp 正则表达式匹配的文本,则返回 true;否则返回 false。示例1
在下面示例中,使用 test() 方法检测字符串中是否包含字符。var s = "JavaScript"; var r = /\w/g; var b = r.test(s);同样使用下面正则表达式也能够进行匹配,并返回true。
var r = /JavaScript/g; var b = r.test(s);但是如果使用下面这个正则表达式进行匹配,就会返回 false,因为在字符串“JavaScript”中找不到对应的匹配。
var r = /\d/g; var b = r.test(s);在全局模式下,test() 等价于 exec() 方法。配合循环语句,它们都能够迭代字符串,执行全局匹配操作,test() 返回布尔值,exec() 返回数组或者 null。虽然 test() 方法的返回值是布尔值,但是通过正则表达式对象的属性和 RegExp 静态属性,依然可以获取到每次迭代操作的匹配信息。
示例2
针对上面示例,下面使用 test() 方法代替 exec() 方法可以实现相同的设计效果。var s = "JavaScript"; //测试字符串 var r = /\w/g; //匹配模式 while(r.test(s)) { //循环执行匹配检测,如果true,则继续验证 console.log("匹配文本 = " + RegExp.lastMatch + " r.lastIndex = " + r.lastIndex); //利用RegExp静态属性显示当前匹配的信息 }RegExp.lastMatch 记录了每次匹配的文本,正则表达式对象的 lastIndex 属性记录下一次匹配的起始位置。
使用 test() 执行匹配时,IE 支持 RegExp.index 记录了匹配文本的起始下标位置、Regexp.lastIndex 记录下一次匹配的起始位置,但是其他浏览器不支持。
除了正则表达式内置方法外,字符串对象中很多方法也支持正则表达式的模式匹配操作,下面列表比较了字符串对象和正则表达式对象包含的 6 种模式匹配的方法,如表所示。
方法 | 所属对象 | 参数 | 返回值 | 通用性 | 特殊性 |
---|---|---|---|---|---|
exec() | 正则表达式 | 字符串 | 匹配结果的数组。如果没有找到,返回值为 null | 通用强大 | 一次只能匹配一个单元,并提供详细的返回信息 |
test() | 正则表达式 | 字符串 | 布尔值,表示是否匹配 | 快速验证 | 一次只能匹配一个单元,返回信息与 exec() 方法基本相似 |
search() | 字符串 | 正则表达式 | 匹配起始位置。如果没有找到任何匹配的字符串,则返回 -1 | 简单字符定位 | 不执行全局匹配,将忽略标志 g,也会忽略正则表达式的 lastIndex 属性 |
match() | 字符串 | 正则表达式 | 匹配的数组,或者匹配信息的数组 | 常用字符匹配方法 | 将根据全局模式的标志 g 决定匹配操作的行为 |
replace() | 字符串 | 正则表达式或替换文本 | 返回替换后的新字符串 | 匹配替换操作 | 可以支持替换函数,同时可以获取更多匹配信息 |
split() | 字符串 | 正则表达式或分割字符 | 返回数组 | 特殊用途 | 把字符串分隔为字符串数组 |
所有教程
- C语言入门
- C语言编译器
- C语言项目案例
- 数据结构
- C++
- STL
- C++11
- socket
- GCC
- GDB
- Makefile
- OpenCV
- Qt教程
- Unity 3D
- UE4
- 游戏引擎
- Python
- Python并发编程
- TensorFlow
- Django
- NumPy
- Linux
- Shell
- Java教程
- 设计模式
- Java Swing
- Servlet
- JSP教程
- Struts2
- Maven
- Spring
- Spring MVC
- Spring Boot
- Spring Cloud
- Hibernate
- Mybatis
- MySQL教程
- MySQL函数
- NoSQL
- Redis
- MongoDB
- HBase
- Go语言
- C#
- MATLAB
- JavaScript
- Bootstrap
- HTML
- CSS教程
- PHP
- 汇编语言
- TCP/IP
- vi命令
- Android教程
- 区块链
- Docker
- 大数据
- 云计算