正则表达式

正则表达式是由一个字符序列形成的搜索模式,可用于所有文本搜索和文本替换的操作。

1.正则表达式的创建

第一种是字面量模式://中写内容

//var reg=/正则表达式/修饰符
var reg=/hello/g

第二种是构造函数:内部传入的参数为字符串

//var reg=new RegExp("正则表达式","修饰符")
var reg=new RegExp("hello","g")

2.字符分类

普通字符

  字母、数字、下划线、汉字、没有特殊含义的符号(,;!@等)

特殊字符

  \:将特殊字符转义成普通字符

模式修饰符

  i:ignoreCase,匹配时忽视大小写

  m:multiline,多行匹配

  g:global,全局匹配

  字面量创建正则时,模式修饰符写在一对反斜线后

3.正则表达式语法-元字符

字符集合

方括号用于查找某个范围内的字符。

例如[abc]指查找方括号里的任何一个字符,只要存在一个就为true,[0-9]查找0-9之间的任意数字

[^abc]是反义字符组,指不在括号里的任意字符,需要注意的是^写在[]里面时是指反义字符组。下面将会说到写在外面时的情况。

边界符

1.^ 匹配输入开始。表示匹配行首的文本(以谁开始)

2.$ 匹配输入结尾。表示匹配行尾的文本(以谁结束)

var reg = /^[^a-zA-Z0-9]$/;
console.log(reg.test('a'));//false
console.log(reg.test('B'));//false
console.log(reg.test(8));//false
console.log(reg.test('!'));//true

3.\b 匹配一个零宽单词边界,表示一个单词(而非字符)边界,也就是单词和空格之间的位置,或者字符(\w)与字符串开头或者结尾之间的位置。

4.\B 匹配一个零宽非单词边界(zero-width non-word boundary),与"\b"相反。

4.字符类

\d     <=>   [0-9]

\D     <=>   \d取反

\w     <=>   [a-zA-Z0-9_]

\W    <=>   [^a-zA-Z0-9_]

"." 除换行符\n和回车符之外的任何单个字符

5.数量词

6.

字符含义
*>=0次
+≥1 次
0或1次
{n}n 次
{n,}≥n 次
{n,m}n到m 次

  6.前瞻表达式

正则表达式里的前瞻,有的也管它叫零度断言。前瞻的作用:指定元素后面一定要匹配有什么,下面举例说明。

var str='hello,I am hejing'
var reg=/h(?=e)/g
var newStr=str.replace(reg,'B')
console.log(newStr)//Bello,I am Bejing

还有一个说法是负向前瞻,顾名思义刚好相反,后面不要匹配什么

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值