一文讲懂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$/

猜你喜欢

转载自blog.csdn.net/qq_36923376/article/details/86491509