转义字符功能
1.
\转义字符(让后面的例如"显示)
2.
\r行结束
\n换行(多行)
\t制表符(缩进四个空格)
3.
\换行加转义字符将空格转义掉,可以写多行字符串。
正则表达式的创建
var reg = /abc/
2.
var reg = new RegExp(“规则”,属性)
3.
var reg = new RegExp(reg) 两个不同的正则
var reg = RegExp(reg) 两个相同的正则
修饰符(属性)
1.
var reg = /abc/i 忽视大小写
2.
var reg = /abc/g 全局匹配(匹配多个)
3.
var reg = /^abc/ 开头(以a开头)
4.
var reg = /abc
/
结
尾
(
以
/ 结尾(以
/结尾(以开头)
5.
ar reg = /abc/m 多行匹配(多行开头结尾匹配)
方法
1.
tip reg.test(校验字符串,布尔值)
2.
str.mach(reg)符合规则的片段选出来
3.
reg.exec() lastIndex
str.search() 匹配返回到的位置匹配不到返回-1
str.split() 拆分字符串
str.replace(‘搜索项’,‘替换项’) 没有访问全局的能力,需要配合正则表达式
例如:/(\w)\1(\w)2/
var str = ‘aabb’;
str.replace(reg."$2$2$1$1")
1
代
表
第
一
个
表
达
式
中
的
内
容
/
/
f
u
n
c
t
i
o
n
里
的
两
个
1代表第一个表达式中的内容 //function里的两个
1代表第一个表达式中的内容//function里的两个
会
转
义
或
者
s
t
r
.
r
e
p
l
a
c
e
(
r
e
g
.
f
u
n
c
t
i
o
n
(
会转义 或者 str.replace(reg.function(
会转义或者str.replace(reg.function(,$1,$2){
return $2+$2+$1+$1
})
str.toUpperCase
str.toLowerCase
var reg = /-(\w)/g
var str = “the-first-name”
str.replace(reg,function($,$1){
return $1.toUpperCase
})
正向预查
var str = /a(?=b)/g
var str = /a(?!=b)/g
表达式(表达式里可以写元字符)
var reg = /[1234567890][1234567890][1234567890]/g
var reg = /[0-9A-z]/g
var reg = /[a][v]/g 非
var reg = /(abc|bcd)/g 连着取
元字符
/\w/ === [0-9A-z_]
/\W/ === [^\w]
/\d/ === [0-9]
/\D/ === [^\d]
/\s/ === [\t\n\r\v\f ] 空白字符
/\S/ === [^s]
/\b/ === 单词边界
/\B/ === 非单词边界
\t制表符\n换行符\f换页符 \v换页符垂直制表符 需要匹配时需要在内容中写入才能匹配,但正则表达式里面输入的任何内容都算匹配内容
. === [^r\n]
匹配一切字符
[\s\S]/g
[\d\D]/g
量词
n+ 1-无穷
n* 0-无穷 会匹配空
n? 0-1 会匹配空
n{x} x个
n{x,y} x-y个
n{x,} x-无穷个
贪婪匹配:能多匹配就不少匹配
非贪婪匹配 触发需要在任何一个量词厚多加一个?
?? ?代表0-1的意思,所以能取0不取1
匹配一个字符串查找首尾是否含有数字
var reg = /^\d|\dKaTeX parse error: Expected 'EOF', got '\s' at position 59: …= str.replace(/\̲s̲*/g,""); 去除两头空格…/g,"");
去除左空格: str = str.replace( /^\s*/, “”);
去除右空格: str = str.replace(/(\s*$)/g, “”);
var reg = /^\d[\s\S]]\d$/g (区间拉伸)
字符串去重
var str = “aaaaaaaaaaaabbbbbbbbbbbbbbbccccccccccc”
var reg = /(\w)\1/g
str.replace(reg,"KaTeX parse error: Expected 'EOF', got '\B' at position 55: …var reg = /(=?(\̲B̲)(\d{3})+)/g
str.replace(reg,.)
正则表达式属性
reg.ignoreCase 是否忽视大小写
reg.global 是否全局匹配
reg.multiline 是否多行匹配
reg.source 返回正则表达式写的内容
reg.lastIndex 游标匹配(需要配合g属性使用)
子表达式
reg = /(\w)\4/g 反向引用子表达式中的内容,可以实现aabb,形式的内容(使用exec方法或mach不加g子表达式会挂在类数组的索引位上)