这篇文章主要讲解了“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}国际”,取代内部逻辑会自动解析字符串,提取出变量。