美文网首页
前端正则表达式Reg

前端正则表达式Reg

作者: small_zeo | 来源:发表于2021-03-14 12:34 被阅读0次

http://jsbin.com/xexaxojuni/edit?js,console

https://regexper.com/

1.匹配字符串(replace)

var reg = /\bis\b/
var str = 'he is a good boy.'
str.replace(reg,'IS');
// result: he IS a good boy.

2.REGEXP对象

Javascript 通过内置对象RegExp支持正则表达式

有两种方法实例化RegExp对象

  • 字面量 var reg = /\bis\b/g

  • 构造函数 var reg = new RegExp('\bis\b','g')

3.修饰符

g: global 全文搜索,不添加,默认搜索到第一个匹配停止

i: ignore case 忽略大小写,默认大小写敏感

m: multiple lines 多行搜索

4.元字符

正则表达式由两种基本字符类型组成: 原义文本字符,元字符

元字符是在正则表达式中有特殊含义的非字母字符

    • ? $ ^ . | \ () {} []

\t 水平制表符

\v垂直制表符

\n 换行符

\r 回车符

\0 空字符

\f 换页符

字符类

我们可以使用元字符[ ] 来构建一个简单的类

所谓类是指符合某些特性的对象,一个泛指,而不是特指某个字符

表达式[ abc ] 把字符 a 或 b 或 c 归为一类,表达式可以匹配这类的字符

5.字符类取反

使用元字符 ^ 创建 反向类/负向类

反向类的意思是不属于某类的内容

表达式 [ ^abc ] 表示 不是字符 a 或 b 或 c 的内容

'a1b2c3d4'.replace(/[ abc ]/g/,'X');

X1X2X3d4

'a1b2c3d4'.replace(/[ ^abc ]/g/,'X');

aXbXcXXX

6.范围类

在 [ ] 组成的类内部是可以连写的 [a-zA-Z]

预定义类

\d === [0-9]

\D === [ ^0-9]

\s ===[\t\n\x0B\f\r] 空白符

\w === [a-zA-Z_0-9] 单词字符(字母、数字、下划线)

7.边界

^ 以xxx开始

$ 以xxx结束

\b 单词边界

\B 非单词边界

8.量词

? 出现零次或一次 ( 最多出现一次)

  • 出现一次或多次 (至少出现一次)
  • 出现零次或多次 (任意次)

{n} 出现n次

{n,m} 出现 n 到 m 次

{n,} 至少出现n次

贪婪模式:

'12345678'.replace(/\d{3,6}/g,'X')

'X78'

非贪婪模式

让正则表达式尽可能少的匹配,也就是说一旦成功匹配不再继续尝试

做法很简单,就是在量词后加 ?

'12345678'.match(/\d{3,6}?/g,'X')

['123','456']

9.分组

使用()可以达到分组的功能,使量词作用于分组

(Byron){3}

使用 | 可以达到或的效果

Byron | Casper

反向引用

'2021-03-14'.replace(/(\d{4})-(\d{2})-(\d{2})/,'$3/$2/$1')

14/03/2021

相关文章

网友评论

      本文标题:前端正则表达式Reg

      本文链接:https://www.haomeiwen.com/subject/jreqcltx.html