鉴于对正则表达式的不熟悉,看来一个入门的视频链接,做了一下笔记,方便以后查阅
var reg=/\bis\b/;
\b代表这是一个完整的单词eg:'this is a man,this is a woman.'.replace(reg,'IS')结果输出:this IS a man,this is a woman.
g:当在后面加个g表示全文匹配:reg=/\bis\b/g;
结果输出:this IS a man,this IS a woman.
i:忽略大小写
’he is a boy,IS he'.replace(/\bis\b/g,'0')结果:he 0 a boy,IS he
’he is a boy,IS he'.replace(/\bis\b/gi,'0')结果:he 0 a boy,0 he
m:多行搜索
\n:换行
\r:回车
\0:空字符
\f:换页符
\t:tab
[]使用元字符构建一个简单的类,eg:[abc]表示包含a or b or c
'a1b2c3d4'.replace(/[abc]/g,'x')结果输出:x1x2x3d4
字符类取反:使用^创建反向类/负类
'a1b2c3d4'.replace(/[^abc]/g,'x')结果输出:axbxcxxx
范围类:[a-zA-Z]a-z,大写A-Z的任意字符
eg:'a1b1Z3'.replace(/[a-zA-Z]/g,'Q')结果:Q1Q2Q3
'2018-09-10'.replace(/[0-9]/g,'A')结果:AAAA-AA-AA
'2018-09-10'.replace(/[0-9-]/g,'A')结果:AAAAAAAAAA
预定义类:
.:除了回车和换行之外的所有字符[^/r/n]
\d:数字字符=[0-9]
\D:非数字字符=[^0-9]
\s:空白字符
\S:非空白字符
\w:单词字符(字母,数字,下划线)=[a-zA-Z_0-9]
\W:非单词字符=[^a-zA-Z_0-9]
eg:匹配一个ab+数字+任意字符的字符串
reg=/ab\d./;==/ab[0-9][^/r/n]/;
边界:
^:以xxx开始,写在前面
$:以xxx结束,写在后面
\b:单词边界
\B:非单词边界
eg:'This is a boy'.replace(/is/g,'0')结果:Th0 0 a boy
'This is a boy'.replace(/\bis\b/g,'0')结果:This 0 a boy
'This is a boy'.replace(/\Bis\b/g,'0')结果:Th0 is a boy
'@123@abc@'.replace(/@./g,'Q')结果:Q123Qabc@
'@123@abc@'.replace(/^@./g,'Q')结果:Q123@abc@
'@123@abc@'.replace(/.@/g,'Q')结果:@123QabcQ
'@123@abc@'.replace(/.@$/g,'Q')结果:@123@abcQ
str=“@123
@456
@789”
str.replcae(/^@\d/g,'X')
结果:
X23
@456
@789
str.replcae(/^@\d/gm,'X')
X23
X56
X89
量词:
?:最多出现1次
+:至少出现一次
*:任意次数
{n}:出现n次
{n,m}:出现n到m次
{n,}:至少出现n次
/\d{20}\w\d?\w+\d*\d{3}\w{3,5}\d{3,}
贪婪模式(模式模式):尽可能匹配最多
'12345678'.replace(/\d{3,6}/g,'X'}结果:X78
非贪婪模式:在量词后面加上?就可以了
'12345678'.replace(/\d{3,6}?/g,'X'}结果:X45678
分组:使用()可以达到分组的功能
匹配字符串Byron连续出现3次的场景
(Byron){3}
'a1b2c3d4'.replace(/([a-z]/d){3}/g,'a')
或:|
’ByronCasper'.replace(/Byron|Casper/g,'X')结果:XX
’ByronCasper'.replace(/Byron|Casper/g,'X')结果:XX
反向应用:2015-12-25==>12/25/2015
‘2015-12-25'.replace(/(\d{4})-(\d{2})-(\d{2})/g,'$2/$3/$1')
忽略分组:加上?:
前瞻:
正向前瞻:exp(?=assert)
负向前瞻:exp(?!=assert)
正向后顾:exp(?<=assert)JavaScript不支持
负向后顾:exp(?<assert)JavaScript不支持
eg:\w(?=\d)
'a2*3'.replace(/\w(?=\d)/g,'X')结果:X2*3