1、创建正则表达式的两种方式
正则表达式由两部分组成 :模式+标志
标志:g:全局;i:不区分大小写;m:多行匹配。
(1)字面量
示例1:匹配所有at:/at/g
示例2:匹配第一个不区分大小写的bat或者cat:/[bc]at/i
注意:元字符要进行转义。
(2)RegExp构造函数
RegExp构造函数接受两个字符串形式的参数:new RegExp('模式','标志')。
示例:new RegExp('/at/','g')
注意:元字符转义时,因为传入的参数是字符串,所以需要进行双重转义。
2、两种创建方式的对比
(1)两种方式创建的正则表达式,在循环时,每次都创建一个新的实例(ECMAscript5中明确规定的)
(2)利用typeof pattern的类性都是object类性
(3)利用pattern instanceof RegExp都返回true
(4)继承toLocaleString()和toString(),且都会返回正则表达式的字面量,与如何创建实例无关系
(5)valueOf() 返回正则表达式本身
3、RegExp实例的方法——exec()
定义:exec专门用于捕获设计的
用法:exec():接受一个参数,即要应用模式的字符串。
实例:
![](https://img.haomeiwen.com/i9317447/7faef795f961af8b.png)
matches返回的是包含匹配项的数组或者null。虽然是数组但是有index,input。
重点理解下:matches[0],matches[1].........——第一项是与整个模式匹配的字符串,其他的是与模式中的捕获组匹配的字符串。释:/mom(dad(bay)?)?/g,整个模式匹配momdadbay,捕获组dadbaby和baby。
4、RegExp实例的方法——test
定义:目标字符串与某个模式是否匹配
用法:test()传入一个字符串参数,即要与模式匹配的字符串。返回true或者false。
用途:信息验证。
示例:var text = "123-34-34"
var pattern = /\d{3}-\d{2}-\d{2}/ //匹配三个数字-两个数字-两个数字
pattern.test(text) //结果返回true
5、RegExp构造函数
千分化操作链接:https://www.jianshu.com/writer#/notebooks/40531328/notes/61201755
网友评论