js正则

发布时间 2023-04-20 09:28:08作者: 挖洞404

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 返回正则表达式的匹配模式