JS正则表达式常用函数汇总

写代码时,尤其是为表单添加验证时,经常会用到正则表达式,这时候,一堆相关的函数就浮现出来了,由于比较类似,所以经常不能快速选择最合适的函数,对于懒癌前端,更得马上上网百度。为了使用时快速找到最合适的函数,这里将这些常用函数汇总一下,并看看如何记忆最方便。

首先,分成两块记忆:

1、RegExp对象的 3 个方法:test()、exec()、compile()

2、String对象的4个方法:search()、replace()、split()、match()

记忆大法:

reg.test(str)

reg.exec(str)

reg.compile(reg,modifier)

stringObject.search(regexp/str)

stringObject.match(regexp/str)

stringObject.replace(regexp/str,replacement)

stringObject.split(regexp/str)

先说第一部分:

test() 最常用,如果字符串 string 中含有与 RegExpObject 匹配的文本,则返回 true,否则返回 false。

compile() 感觉很少用到,看字面意思,就是编译正则对象,用于在脚本执行过程中编译正则表达式,

也可以改变和重新编译正则表达式

exec()这个方法极其恶心,下面的说明,扫一眼就行了,还是看示例代码舒服。

该方法属于一个比较复杂的方法,它接受一个字符串,返回的是一个数组,数组中第0个元素是匹配的子字符串,第二个元素是正则中的第一个子分组匹配的结果(如果有子分组,即正则中存在用圆括号括起来的分组),第三个是正则中第二个子分组匹配的结果(如果有第二个子分组)...以此类推,如果没有正则子分组,那么该数组长度仅仅为1,就是匹配到的那个子字符串。同时,返回的这个数组同时还是一个对象,它拥有两个属性,分别为index表示当前匹配到的子字符串所处的位置,input属性表示被匹配的原始字符串。最后,该方法中的正则对象如果不是全局匹配,即没有g修饰符,则每次调用只会从字符串开头处匹配第一个结果,且每次调用结果都是一样的。只有指定为全局匹配,才能够按照从左往右依次去匹配,每次调用匹配一个结果,正则对象的lastIndex属性前进到本次匹配的末尾位置,下回再调用的时候,会从lastIndex处开始匹配而不是从头匹配。

再看第二部分:

search() 用来查找第一次匹配的子字符串的位置,如果找到就返回一个number类型的index值,否则返回-1,它返回的只是第一次匹配的位置。

replace() 太简单,不讲

split() 用来将一个字符串拆分成一个数组,它接受一个正则或者子字符(串)作为参数,返回一个数组,简单情况下,我们不需要使用正则,只有在字符串拆分规则不统一的情况下才需要使用正则,如下:

match() 该方法接受一个正则作为参数,用来匹配一个字符串,它的输出结果在不是全局匹配的情况下和exec方法的结果一致即一个数组并带有额外的属性如果采用全局匹配,则不返回任何和其被匹配字符串相关的信息,只返回匹配的结果

写到这里快吐了。。。。。。。。不想看 exec 方法,太恶心了。。。。

发了那么多电影相关的文章,也该写写前端方面的文章了,今天终于认真写了两篇。

交流技术?加作者微信吧

本文来自企鹅号 - 小白前端杂货铺媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Golang语言社区

Go语言语法汇总

最近看了看GoLang,把Go语言的语法总结了一下,做个快速参考 数据类型 ---- var varName type,var var1,var2… type,...

44480
来自专栏Laoqi's Linux运维专列

python3–函数

453110
来自专栏python3

python3--中一些常见的坑(机制上的问题)

重点:在循环一个列表时,最好不要进行删除的动作(一旦删除,索引会随之改变),容易错误。

8210
来自专栏Golang语言社区

转--Golang语言语法汇总

最近看了看GoLang,把Go语言的语法总结了一下,做个快速参考 数据类型 ---- var varName type,var var1,var2… type,...

364160
来自专栏小古哥的博客园

读书笔记《PHP与MySQL程序设计》一

第1章 PHP概述 1.1  历史(PHP4、PHP5、PHP5.3、PHP6[未发布]) 1.2 一般语言特性(实用性、强大功能、可选择性、成本[开源]) 第...

41760
来自专栏liulun

Nim教程【十三】

类型转换 Nim支持显示类型转换和隐式类型转换 使用casts操作符完成显示类型转换工作, 显示类型转换工作是编译期完成的工作,是位模式的 隐式类型转换也是编译...

24360
来自专栏Dato

关于 Integer 值比较的问题

今天刚好遇到这样的问题,别的不说,先上代码 public class TestInteger { public static void main(fi...

28080
来自专栏cs

python数据类型

python编译图 运行python文件的时候,python会通过编译器将它编译成.pyc文件。 如果没有修改python文件,每次执行程序时,就执行前面运行...

31750
来自专栏乐百川的学习频道

Python 正则表达式

最近研究Python爬虫,很多地方用到了正则表达式,但是没好好研究,每次都得现查文档。今天就专门看看Python正则表达式。本文参考了官方文档 re模块。 模式...

248100
来自专栏Python小屋

详解Python序列解包(4)

本文主要介绍调用函数传递参数时序列解包的用法。在定义函数时在形参前面加2个星号**表示可变长度参数,可以收集若干关键参数形式的参数传递并存放到一个字典之中。与之...

34950

扫码关注云+社区

领取腾讯云代金券