RegExp 原型属性和方法

发布于 2024-11-29 16:40:20 字数 3103 浏览 8 评论 0

属性

属性作用
global是否全文搜索,默认 false,对应修饰符的 g,只读
ignoreCase是否大小写敏感,默认 false,对应修饰符 i,只读
multiline是否多行搜索,默认 false,对应修饰符 m,只读
flags返回修饰符,只读 lastIndex
source正则表达式的文本字符串
dotAll是否开启 dotAll 模式,默认 false,对应修饰符 s,只读
sticky搜索是否具有粘性,默认 false,对应修饰符 y,只读
unicode对应修饰符 u,只读
hasIndices对应修饰符 d,只读

方法

  1. test()
  2. 测试字符串参数中是否存在匹配正则表达式的字符串
  3. 如果匹配失败, test() ​ 方法返回 false,并将 lastIndex 重置为 0

使用 .test ​的时候如果修饰符有 g/y ,那么会正则会记住 lastIndex 并在下一次执行的时候从 lastIndex 处开始检测
即使再次查找的字符串不是原查找字符串时, lastIndex 也不会被重置,它依旧会从记录的 lastIndex 开始
如果只是为了测试是否符合正则,可以不用 g/y 或者每次都重新实例化正则表达式

const reg = /\w/g
console.log(reg.lastIndex)    //    0
console.log(reg.test('aaaa'))    //    true
console.log(reg.test('aaaa'))    //    true
console.log(reg.lastIndex)    //    2

console.log(reg.test('a'))    //    false
console.log(reg.lastIndex)    //    0

console.log(reg.test('a'))    //    true
console.log(reg.lastIndex)    //    1

exec()

  • 在一个指定字符串中执行一个搜索匹配。返回一个结果数组或 null
  • 如果匹配失败,exec() 方法返回 null,并将 lastIndex 重置为 0
  • 不设置 g 修饰符,对一个字符串每次调用 exec() ​ 永远只返回第一个匹配项。
  • 如果设置了 g 修饰符,每次调用 exec() ​ 会在字符串中继续查找新匹配项,所以如果要匹配一个字符串中的所有需要匹配的地方,那么可以设置 g 修饰符,然后通过循环不断调用 exec 方法。
  • lastIndex 规则同上
const re = /quick\s(brown).+?(jumps)/ig // 非贪婪模式
const result = re.exec('The Quick Brown Fox Jumps Over The Lazy Dog')
对象属性/索引描述例子
result[0]匹配的全部字符串Quick Brown Fox Jumps
result[1],…[n]括号中的分组捕获[1] = Brown [2] = Jumps
resultindex匹配到的字符位于原始字符串的基于 0 的索引值4
resultinput原始字符串The Quick Brown Fox Jumps Over The Lazy Dog
relastIndex下一次匹配开始的位置25 (没有 g 的话,就一直是 0)
reignoreCase是否使用了 i 标记使正则匹配忽略大小写true
reglobal是否使用了 g 标记来进行全局的匹配。true
remultiline是否使用了 m 标记使正则工作在多行模式false
resource正则匹配的字符串quick\s(brown).+?(jumps)

例:

const re = /a(b|c)/
for (let i = 0; i < 3; i++) {
  re.exec('abcacadaaab')
  console.log(RegExp.$1,RegExp.$2,RegExp.$3)
}
// 无 g b,b,b
// 有 g b,c,b

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

椒妓

暂无简介

0 文章
0 评论
23 人气
更多

推荐作者

杨绘峰

文章 0 评论 0

听闻余生

文章 0 评论 0

谜兔

文章 0 评论 0

xiaotwins

文章 0 评论 0

你说

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文