正则表达式

一,JavaScript转义符

转义序列字符
\b退格
\f走纸换页
\n换行
\r回车
\t   table的缩写横向跳格 ---一般等于4个空格
\'单引号
\"双引号
\\反斜杠

二,正则表达式

正则表达式的作用:匹配特殊字符或有特殊搭配原则的字符的最佳选择
1.正则表达式字面量创建
var reg = /abc/;  要在两个斜杠里面写
var str = "abcde" 然后reg.test(str) -->正则表达式会测验一下str里面有没有连着的abc有的话返回true
2.第二种创建方式
var reg = new RegExp("abc");-->第一个参数写规则
var str = "abcd";        现在reg.test(str) 会返回true跟上面类似

var reg = /abc/;
var reg1 = new RegExp("reg");-->里面也可以是正则表达式,这样有new的话reg跟reg1是两个人,没new的话她两是一个人

三,正则表达式修饰符

i执行对大小写不敏感的匹配。
g执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。
m执行多行匹配。
g  -->执行全局匹配
var reg = /ab/;
var str = "abababababab";  -->利用str.match(reg) -里面传正则表达式他就会把自己符合的片段挑出来,他会只返回一个 "ab";
如果是var reg = /ab/g; -->查找到一个之后他会向后继续查找他会返回所有ab
m --->执行多行匹配
var reg = /^a/g; -->加个^代表以a开头的
var str = "abcde\na";  然后str.match(reg) 他还会返回一个a,虽然有\n但是还会认为他是连着写的
如果加个m var reg = /^a/gm;他会执行多行匹配现在就会返回两个a
两个方法1.reg.test(str)--->只能判断字符串有没有符合要求返回true或false
2.str.match(reg)-->可以把所有东西匹配出来返回给你,也可以告诉返回多少个

四,表达式的几个应用  -->表达式的^是非的意思跟上面那个不一样

表达式描述
[abc]查找方括号之间的任何字符
[^abc]查找任何不在方括号之间的字符
[0-9]查找任何从0到9的数字
[a-z]查找任何从小写a到小写z的字符
[A-Z]查找任何从大写A到大写Z的字符
[A-z]查找任何从大写A到小写z的字符
[adgk]查找给定集合内的任何字符
[^adgk]查找给定集合外的任何字符
(red|blue|green)查找任何指定的选项  |在正则里面是或的意思

四,附一,元字符

元字符描述
.查找单个字符,除了换行和行结束符 [^\r\n]
\w查找单词字符   ===[0-9A-z]
\W查找非单词字符  ===[^\w]
\d查找数字   ===[0-9]
\D查找非数字字符   ===[^\d]
\s

查找空白字符   ===[\t\n\r\v\f空格]

\S 查找非空白字符  ===[^\s]
\b匹配单词边界  单词边界就是比如abc  cde fgh 三个单词他有6个单词边界  
\B匹配非单词边界
\n查找换行符
\f查找换页符
\r查找回车符
\uxxxx   范围从0000-ffff查找以16进制数xxxx规定的unicode字符

五,量词

n+匹配任何包含至少一个n的字符串
n*匹配任何包含零个或多个n的字符串
n?匹配包含任何零个或一个n的字符串
n{X}匹配包含X个n的序列的字符串
n{X,Y}匹配包含X至Y个n的序列的字符串
n{X, } 匹配包含至少X个n的序列的字符串
n$匹配任何结尾为n的字符串
^n匹配任何开头为n的字符串
?=n   正向预查匹配任何其后紧接指定字符串n的字符串
?!n匹配任何其后没有紧接指定字符串n的字符串

六,RegExp对象属性

globalRegExp对象是否具有标志g
ignoreCaseRegExp对象是否具有标志i
lastIndex一个整数,标示开始下一次匹配字符位置
multilineRegExp对象是否具有标志m
source正则表达式的源文本 -->内容

七,RegExp对象方法

exec   reg.exec(str)  reg.lastIndex会返回查找的下标,比方说var reg = /ab/g;  var str = "abababab"; ,然后reg.exec(str) 会返回一个ab  和index的值(就是下标),然后lastIndex依次递加,查找完成之后会循环再次从头查找,也可以手动给lastIndex赋值检索字符串中指定的值,返回找到的值,并确定其位置
test    检索字符串中指定的值,返回true或false

八,支持正则表达式的String

search   str.search(reg)他会返回匹配到的位置,不管匹配多少个返回的都是第一次的位置,匹配不到会返回-1检索与正则表达式相匹配的值
match找到一个或多个正则表达式的匹配

replace  如果不采用正则表达式

var str = "aa";

console.log(str.replace("a","b"));他只会替换一个a结果为ba

var reg = /a/g;

如果采用正则console.log(str.replace(reg,"b"))

会全部替换

如果是aabb想替换为bbaa

var reg =/(\w)\1(\w)\2/g;

var str = "aabb";

console.log(str.replace(reg,"$2$2$1$1")); $2代表第二个子表达式的内容

还可以写成

console.log(str.replace(reg,function($,$1,$2){

  第一个参数是正则表达式全局就是reg,

   return $2 +$2 + $1 + $1

}))

替换与正则表达式匹配的子串
split把字符串分割成字符串数组

字符串变大写srr.toUpperCase()  字符串变小写:str.toLowerCase()

九,反向引用

var str = "aaaa";
var reg = "/(\w)\1/g"   -->\1引用第一个表达式匹配的内容  第一次匹配的a \1会反向引用第一个表达式的内容 \2就是反向引用第二个,var reg = "/(\w)\1\1\1/" 然后调用str.match(reg)会返回aaaa 

十,贪婪匹配

var str = "aaaa";
var reg = /a+?/g;   不加?他是贪婪匹配能取多不取少,加上?能去少不取多。
var reg = /a{1,3}?/g  能取1个绝对不取3个  str.match(reg);-->返回4个单独的a,去掉问好返回“aaaa”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小兔子的博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值