RegExp()
创建一个新的 RegExp
对象。
以下三种表达式都会创建相同的正则表达式:
/ab+c/i; //字面量形式 new RegExp('ab+c', 'i'); // 首个参数为字符串模式的构造函数 new RegExp(/ab+c/, 'i'); // 首个参数为常规字面量的构造函数
var re = new RegExp("\\w+"); var re = /\w+/; //两种是等价的
RegExp.lastIndex
lastIndex
是正则表达式的一个可读可写的整型属性,用来指定下一次匹配的起始索引。
lastIndex = regExpObj.lastIndex;只有正则表达式使用了表示全局检索的 "
g
" 标志时,该属性才会起作用。此时应用下面的规则:
- 如果
lastIndex
大于字符串的长度,则regexp.test
和regexp.exec
将会匹配失败,然后lastIndex
被设置为 0。- 如果
lastIndex
等于字符串的长度,且该正则表达式匹配空字符串,则该正则表达式匹配从lastIndex
开始的字符串。(then the regular expression matches input starting atlastIndex
.)- 如果
lastIndex
等于字符串的长度,且该正则表达式不匹配空字符串 ,则该正则表达式不匹配字符串,lastIndex
被设置为 0.。- 否则,
lastIndex
被设置为紧随最近一次成功匹配的下一个位置。
RegExp.prototype.ignoreCase
ignoreCase
属性表明正则表达式是否使用了 "i
" 标志。ignoreCase
是正则表达式实例的只读属性。
ignoreCase
的值是布尔对象,如果使用了"i
" 标志,则返回true
;否则,返回false
。"i
" 标志意味着在字符串进行匹配时,应该忽略大小写。
RegExp.prototype.global
global
属性表明正则表达式是否使用了 "g
" 标志。global
是一个正则表达式实例的只读属性。
var regex = new RegExp("foo", "g")
console.log(regex.global) // true
RegExp.prototype.sticky
sticky
属性反映了搜索是否具有粘性( 仅从正则表达式的 lastIndex 属性表示的索引处搜索 )。sticky
是正则表达式对象的只读属性。
const regex1 = new RegExp('foo', 'y');
RegExp.prototype.exec()
exec()
方法在一个指定字符串中执行一个搜索匹配。返回一个结果数组或 null。在设置了 global 或 sticky 标志位的情况下(如
/foo/g
or/foo/y
),JavaScript RegExp 对象是有状态的。他们会将上次成功匹配后的位置记录在 lastIndex 属性中。使用此特性,exec()
可用来对单个字符串中的多次匹配结果进行逐条的遍历(包括捕获到的匹配),而相比之下, String.prototype.match() 只会返回匹配到的结果。如果你只是为了判断是否匹配(true或 false),可以使用 RegExp.test() 方法,或者 String.search() 方法。
其他常用方法
test()
方法执行一个检索,用来查看正则表达式与指定的字符串是否匹配。返回true
或false
。
toString()
返回一个表示该正则表达式的字符串。
replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
方括号
元字符 ![](https://img-blog.csdnimg.cn/20210913145242455.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAVGl0YW5pdW3kuLY=,size_20,color_FFFFFF,t_70,g_se,x_16)