RegExp实例属性

每个 RegExp 实例都有下列属性,提供有关模式的各方面信息。
 global :布尔值,表示是否设置了 g 标记。
 ignoreCase :布尔值,表示是否设置了 i 标记。
 unicode :布尔值,表示是否设置了 u 标记。
 sticky :布尔值,表示是否设置了 y 标记。
 lastIndex :整数,表示在源字符串中下一次搜索的开始位置,始终从 0 开始。
 multiline :布尔值,表示是否设置了 m 标记。
 dotAll :布尔值,表示是否设置了 s 标记。
 source :正则表达式的字面量字符串(不是传给构造函数的模式字符串),没有开头和结尾的
斜杠。
 flags :正则表达式的标记字符串。始终以字面量而非传入构造函数的字符串模式形式返回(没
有前后斜杠)。
通过这些属性可以全面了解正则表达式的信息,不过实际开发中用得并不多,因为模式声明中包含
这些信息。下面是一个例子:
let pattern1 = /\[bc\]at/i; console.log(pattern1.global); // false console.log(pattern1.ignoreCase); // true console.log(pattern1.multiline); // false console.log(pattern1.lastIndex); // 0 console.log(pattern1.source); // "\[bc\]at" console.log(pattern1.flags); // "i" let pattern2 = new RegExp("\\[bc\\]at", "i"); console.log(pattern2.global); // false console.log(pattern2.ignoreCase); // true console.log(pattern2.multiline); // false console.log(pattern2.lastIndex); // 0 console.log(pattern2.source); // "\[bc\]at" console.log(pattern2.flags); // "i"
注意,虽然第一个模式是通过字面量创建的,第二个模式是通过RegExp构造函数创建的,但两个模式的source和flags属性是相同的。source和flags属性返回的是规范化之后可以在字面量中使用的形式。

posted @ 2021-10-15 15:50  Caesar_Y  阅读(71)  评论(0编辑  收藏  举报