一文讲懂JavaScript的正则表达式

在讲正则表达式之前,先说一下常用的字符串函数

var str=‘abc-def’;

1、str.search('c'); //返回第一次出现该字符的位置(这里的位置编号相当于数组下标,从0开始)。

2、str.substring(2,5);//截取从第2位置到第5位置的字符串(包含第二位置,不包含第5位置)。

      str.substring(1);//截取从第1位置开始一直到结尾的字符串。

 3、str.charAt(3);//返回第3位置的字符

4、str.split('-');//以'-'为字符分割,返回一个数组

5、str.match('a');//返回是‘a’字符的字符,其实返回的就是‘a’,这样使用没有意义,需配合正则表达式使用 

6、str.replace('a','A');//把第一次出现‘a’的字符用‘A’替换。

 

一、什么是正则表达式?

制定一定的规则对字符串进行匹配

二、在js中,以RegExp对象为使用方式。

有两种表现风格

  • js风格----------new RegExp("a","i")

第一个参数是需要匹配的字符串(可以接受变量),可以接受第二个参数是附加条件。比如上面意思是,匹配是‘a’的且不区分大小写

  • perl风格-------/a/i

两个斜线之间写需要匹配的字符串(不可以接受变量),i为附加条件(不需要引号)。

 

我所理解的正则表达式:

有时,我们会对一些字符串进行处理,从一堆包含数字、汉字、英文的字符串中,把数字全部筛选出来,然后让他们做加法。思路就是先把数字全部选出来。举个例子如下字符串:

“上衣是2元,裤子是30元,Nike鞋是50元”

需要写正则表达式把数字筛选出来,首先写规则

var re=/\d\d/g;

//这样会把30、50筛选出来

var re=/[0-9][0-9]/g;

//这样会把30、50筛选出来

var re=/\d+/g;

//加号代表数量大于等于1,所以会把所有数字都筛选出来

 

\d数字[0-9]
\w英文、数字、下划线[a-z0-9_]
\s空白字符 
\D [^0-9]
\W [^a-z0-9_]
\S非空白字符 

 

附加条件:

i 意为ignore,就是忽略大小写

g意为global,检测全部、而不是一个。

量词:

{n}               出现n次

{n,m}           出现最少n次,最多m次

{n,}              最少1次,最多不限

( )?        问号前面的可有可无

if(re.test(otxt.value))

//test方法意为判断字符串是否与re匹配的,有就是true。但是它只是检测一部分是否满足要求,如果前端或后端有非法字符,他还是返回true,所以要给他加上行首、行尾的限制。即 /^abc$/

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值