JavaScript RegExp 对象 | 菜鸟教程 (runoob.com)
JavaScript RegExp 对象 | 菜鸟教程 (runoob.com)
1、re语法
/正则表达式主体/修饰符(可选)
例如:
var patt = /runoob/i
(1)主体
[abc] 由范围内字符组成
[0-9]
(x|y) 是x或者y项
\d 查找数字
\s 空白符
\b 单词边界
\uxxxx unicode码指定字符
n+ 至少1个
n* 0或多个
n? 0或1个
(2)修饰符
大小写敏感。
- i 执行对大小写不敏感的匹配。
- g 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。
- m 执行多行匹配。
2、字符串方法
在 JavaScript 中,正则表达式通常用于两个字符串方法 : search() 和 replace()。
(1)search() 方法
用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串,并返回子串的起始位置。没找到返回-1
alert("hello abc abc!".search(/abc/i)) //6
alert("hello abc abc!".search(/abcd/i)) //-1
(2)replace() 方法
用于在字符串中用一些字符串替换另一些字符串,或替换一个与正则表达式匹配的子串。如果未匹配到则不进行替换。
alert("hello abc abc!".replace(/abc/i, 'zzz')) //hello zzz abc!
alert("hello abc abc!".replace(/abc/g, 'ggg')) //hello ggg ggg!
alert("hello abc abc!".replace(/abcd/g, 'ggg')) //hello abc abc!
3、RegExp 对象
(1)test方法
用于检测一个字符串是否匹配某个模式,如果字符串中含有匹配的文本,则返回 true,否则返回 false。
/abc/.test("hello abc!") //true
/abc/.test("hello eee!") //false
(2)exec方法
用于检索字符串中的正则表达式的匹配。
该函数返回一个数组,其中存放匹配的结果,只保存第一个匹配项。如果未找到匹配,则返回值为 null。
/abc/.exec("hello abc abc!") //类型是object,为数组,默认输出第一个元素abc
/abc/.exec("hello eee!") //null
console.log(/abc/g.exec('-abc-abc-').length)//1
4、reg对象
(1)声明
如果是开发者直接定义reg,可以使用以上/主体/模式的形式直接使用。但是如果想通过参数来设置reg,并且允许设置模式,需要使用类进行声明。
var patt=new RegExp(pattern,modifiers);
var e = new RegExp('abc','g')
(2)方法
- exec 测试参数字符串是否包含正则声明内容,没有返回null,有返回数组,typeof为object,有且只有一个元素,其为初次匹配的内容
- test 测试参数字符串是否包含正则声明内容,返回true或false
- toString 返回正则表达式的字符串。
(3)属性
- consturctor
- global 判断是否设置了 “g” 修饰符
- ignoreCase 判断是否设置了 “i” 修饰符
- lastIndex 用于规定下次匹配的起始位置
- multiline 判断是否设置了 “m” 修饰符
- source 返回正则表达式的匹配模式