关于javascript:正则梳理

32次阅读

共计 1258 个字符,预计需要花费 4 分钟才能阅读完成。

1 在线工具:https://regexper.com/
\d 数字 {4}数量 []或者 ^ 结尾 $ 结尾()分组 $1,2,3 代表小括号分出的组 \b 单词边界 / / 本义
2.regexp 对象
字面量

var reg=/ \bis\b / g 全局 / / 代表定义一个正则表达式
a.replace(reg,'IS')

构造函数
var reg=new RegExp(‘\bis\b’,’g’) // 承受俩参数,1. 字符串 正则表达式的文本 2. 字符串 ’g’ ‘i’
疏忽大小写 ‘m’ 多行搜寻
3 元字符
原意文本字符
abc123
元字符(是在正则表达式中有非凡含意的非字母字符)
*+?$^.|(){}[]
\b 匹配一个单词边界
\ 程度制表符 \v 垂直制表符 \r 回车符 \0 空字符 \f 换页符 \cX 与 X 对应的控制字符
字符类取反 ^
1不是字符 a 或 b 或 c 的内容
范畴类 - 闭区间 间断字符
[a-zA-Z]a- z 的任意字符
预约义类
. 除了回车换行外的所有字符
\d 数字字符
\D 非数字字符
\s 空白符
\S 非空白符
\w 单词字符
罕用的边界匹配字符
^ 以 … 开始
$ 以 … 完结
\b \B 单词边界 非单词边界
量词
?呈现 0 次或 1 次(最多一次)
+ 至多要呈现一次
* 呈现任意次
{n} 呈现 n 次
{n,m} 呈现 n 次到 m 次
{n,} 至多呈现 n 次
贪心模式
尽可能多的匹配 /\d{3,6}/g/ 按 6 匹配

'123456789'.match(/\d(3,5)?/g/)非贪心模式 ['123','456','789']

分组
()(aaa){3}

|(/by(on|ca)sper)/)
反向援用
$ eg:a.replace(/(\d{4})-(\d{2})-(\d{2})/g,’$2/$3/$1′)
疏忽分组
不心愿捕捉某些分组 只须要在分组内加上?: 就能够
(?:Byron).(ok)

前瞻
合乎和不合乎特定断言称为必定 / 正向匹配和否定 / 负向匹配

前瞻 (?=) (?!)
js 不反对后顾
.replace(/\w(?=\d)/g,X) 断言不参加匹配内容
对象属性
igm
lastIndex 下一次搜寻的开始地位 上次匹配的后果的最初一个字符的下一个
source 正则表达式的文本字符串(文本内容局部)
test 办法
正则表达式在调用时 会扭转 lastindex
exec(str)办法
非全局调用:
返回数组
lastindex 不失效 匹配文本最初一个字母的下一位下标
ret=reg3.exec(ts)
ret.index 匹配后果从字符串的第几位开始的
ret 0: 与正则相匹配的文本
1: 合乎第一个分组的内容
字符串对象的办法

.search() 返回 1 或者 -1
.search(1)
.match(reg)找和正则相匹配的文本 返回数组
.index .input
.split(,/reg)
.replace(reg,rstr)
.replace(reg,func)

fuc 含意
1. 匹配的字符串,match
2. 正则表达式分组的内容
3. 匹配项在字符串中的 index
4. 原字符串 origin

'a1b2c3d4e5'.replace(/\d/g,function(match){return parseInt(match)+1
})

  1. abc ↩

正文完
 0