JavaScript正则表达式的用法

  介绍

这篇文章主要讲解了“JavaScript正则表达式的用法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习”JavaScript正则表达式的用法”吧!

咱们来看看JavaScript中都有哪些操作正则的方法。

<强> RegExp

RegExp是正则表达式的构造函数。

使用构造函数创建正则表达式有多种写法:

new 正则表达式(& # 39;abc # 39;);//,/abc/new 正则表达式(& # 39;abc # 39;,, & # 39;胃肠道# 39;);//,/abc/gi   new  RegExp (/abc/gi);//,/abc/gi   new 正则表达式(/abc/m, & # 39;胃肠道# 39;);//,/abc/gi

它接受两个参数:第一个参数是匹配模式,可以是字符串也可以是正则表达式;第二个参数是修饰符。

如果第一个参数的正则表达式定义了修饰符,第二个参数又有值,则以第二个参数定义的修饰符为准,这是ES2015的新特性。

使用构造函数一般用于需要动态构造正则表达式的场景,性能不如字面量写法。

我们来看看它的实例属性:

<李>

lastIndex属性。它的作用是全局匹配时标记下一次匹配开始的位置,全局匹配的抓手就是它。

<李>

源属性。它的作用是存储正则模式的主体。比如/abc/胃肠道中的abc。

<李>

对应的修饰符属性。目前有全球ignoreCase,多行,粘,dotAll, unicode属性,返回布尔值表明是否开启对应修饰符。

<李>

旗属性。返回所有的修饰符。

<强>匹配

匹配是字符串实例方法。

它的作用是根据参数返回匹配结果,取名匹配也是非常恰当了。

它接受一个正则表达式作为唯一参数。

可是字符串也可以作为参数怎么解释吗?

& # 39; abc # 39; .match (& # 39; b # 39;);   (“b"//,,,指数:,1,输入:,“abc",,组:,未定义)

这是因为匹配方法内部会隐式的调用<代码>新的正则表达式()将其转换成一个正则实例。

匹配方法的返回值可以分为三种情况。

<强>匹配失败

没什么可说的,返回零。

<强>非全局匹配

返回一个数组。

数组的第一项是匹配结果。如果不传参则匹配结果为空字符串。

& # 39; abc # 39; .match ();   (““//,,,指数:,0,,输入:,“abc",,组:,未定义)

如果正则参数中有捕获组,捕获的结果在数组中从第二项开始依次排列。有捕获组但是没有捕获内容则显示定义。

& # 39; @abc2018& # 39; .match (/@ ([a - z] +) ([a - z] +) ?/);   (“@abc"//,,,“abc",,没有定义,,指数:,0,,输入:,“@abc2018",,组:,未定义)

数组有一个指数属性,标明匹配结果在文本中的起始位置。

数组有一个输入属性,显示源文本。

数组有一个组属性,它存储的不是捕获组的信息,而是捕获命名的信息。

& # 39; @abc2018& # 39; .match (/@ (? & lt; lowerCase> [a - z] +) (& lt; upperCase> [a - z] +) ?/);   (“@abc"//,,,“abc",,没有定义,,指数:,0,,输入:,“@abc2018",,组:,{,小写字母:“abc",,大写:,undefined }]

<强>全局匹配

返回一个数组。

捕获的若干结果在数组中依次排列。因为要返回所有匹配的结果,其他的信息,包括捕获组和若干属性就无法列出了。

& # 39; abc& mno& xyz # 39; .match (/[a - z] +/g);   (“abc"//,,,“mno",,“xyz"]

<强>替换

替换字符串是实例方法。

它的作用是将给定字符串替换匹配结果,并返回新的替换后的文本。源文本不会改变。

它接受两个参数。

第一个参数可以是字符串或者正则表达式,它的作用是匹配。

参数是字符串和参数是正则表达式的区别在于:正则表达式的表达能力更强,而且可以全局匹配。因此参数是字符串的话只能进行一次替换。

& # 39; abc-xyz-abc& # 39; .replace (& # 39; abc # 39;,, & # 39;国际# 39;);//,“biu-xyz-abc"   & # 39;abc-xyz-abc& # 39; .replace (/abc/,, & # 39;国际# 39;);//,“biu-xyz-abc"   & # 39;abc-xyz-abc& # 39; .replace (/abc/g, & # 39;国际# 39;);//,“biu-xyz-biu"

第二个参数可以是字符串或者函数,它的作用是替换。

<强>第二个参数是字符串

替换方法为第二个参数是字符串的方式提供了一些特殊的变量,能满足一般需求。

美元数字代表相应顺序的捕获组。注意,虽然它是一个变量,但是不要写成模板字符串“${$ 1}国际”,取代内部逻辑会自动解析字符串,提取出变量。

JavaScript正则表达式的用法