Javascript正则表达式学习总结
在web开发中,正则表达式是经常会用到的,需要系统性的学习一下。
常用于:
- 表单(邮箱/手机号)验证
- 字符串操作
- 编辑器批量替换
图形化在线工具: https://regexper.com/
以下是在慕课网《JavaScript正则表达式》课程的总结
? 0次或1次
+ 大于等于1次
* 任意次
{n} 循环n次
{n,m} 循环n到m次
{n,} 至少出现n次
[/-] /或者-
\d [0-9]数字
\D [^0-9]非数字
\s [\t\n\x0B\f\r]空白符
\w [a-zA-Z_0-9]单词字符(字幕数字下划线)
\b 单词边界,比如\bapple\b
. 任意字符
^ 开始
$ 结束
在替换时,()中的内容为$1,$2
g 匹配所有字符,如不加则匹配第一个
i 忽略大小写
m 多行搜索
[^123] not 123
[a-zA-Z] a to z A to Z
字面量
var reg = /\bis\b/g
构造函数
var reg = new RegExp(`\\bis\\b`, `g`)
replace()
'a1b2c3d4'.replace(/[abc]/g,'X')
"X1X2X3d4"
'a1b2c3d4'.replace(/[^abc]/g,'X')
"aXbXcXXX"
反向引用
'2015-12-25'.replace(/(\d{4})-(\d{2})-(\d{2})/g, '$2/$3/$1')
"12/25/2015"
search()
'a1b2c3d1'.search(2)
3 //返回下标
match()
var reg = /\d(\w)\d/
var ts = '1a2b3c4d'
var ret = ts.match(reg)
console.log(ret)
VM344:1 ["1a2", "a", index: 0, input: "1a2b3c4d"]
var reg2 = /\d(\w)\d/g
var ret = ts.match(reg2)
console.log(ret)
["1a2", "3c4"] //全部匹配
split()
'a,b,c,d'.split(',')
["a", "b", "c", "d"] //以逗号分隔
'a1b2c3d4e'.split(/\d/g)
["a", "b", "c", "d", "e"]
replace()
'a1b1c1'.replace(/1/g,2)
"a2b2c2"
'a1b2c3d4'.replace(/\d/g, function(match,index,origin){
console.log(index);
return parseInt(match) + 1
})
VM553:2 1
VM553:2 3
VM553:2 5
VM553:2 7
"a2b3c4d5"
'a1b2c3d4e5'.replace(/(\d)(\w)(\d)/g, function(match,group1,group2,group3,index,origin){
console.log(match);
return group1 + group3
})
VM557:2 1b2
VM557:2 3d4
"a12c34e5"
点击查看更多内容
1人点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦