专栏首页编程JS正则表达式常用函数汇总

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 条评论
登录 后参与评论

相关文章

  • AI平台与开发者,造城者要收建筑设计师的进城费吗?

    最近两天,百度与科大讯飞的AI语音平台之争又成为了刷屏事件。这次争论的焦点在于,平台就AI技术面向开发者和合作者收费是不是一个好方案? 当然,科大讯飞方面已经回...

    企鹅号小编
  • 数据中心如何保护信息安全

    伴随《中华人民共和国网络安全法》的表决通过,明年落地实施等消息地传出,网络安全这个字眼活跃在大众视野中。其中有条文规定:网络运营者除了应当按照网络安全等级保护制...

    企鹅号小编
  • Python基础知识3:re正则表达式

    正则表达式(或RE)是一种小型的、高度专业化的编程语言,内嵌在Python中,仅做字符的匹配。 1、字符类型: 普通字符和元字符; 1)普通字符:大多数的字符和...

    企鹅号小编
  • 【学员投稿】学习正则不看这篇基础,你说能行吗?

    ? 嗨咯~ 小伙伴们,NEXT学院的【学员投稿专栏】开张啦~  首次投稿的是我们NEXT学位前端完整课程的8班学员“神仙朱”,快来看看他写了哪些好干货吧~ 正...

    腾讯NEXT学位
  • nginx location配置

    location在nginx中起着重要作用,对nginx接收到的请求字符串进行处理,如地址定向、数据缓存、应答控制、代理转发等 location语法 locat...

    dys
  • 深入正则表达式(3):正则表达式工作引擎流程分析与原理释义

    作为正则的使用者也一样,不懂正则引擎原理的情况下,同样可以写出满足需求的正则,但是不知道原理,却很难写出高效且没有隐患的正则。所以对于经常使用正则,或是有兴趣深...

    周陆军
  • JavaScript RegExp 常用的手机和邮箱正则

    在做前端form表单验证的时候,经常,也是必须对input做一下判断,例如邮箱了,手机了,input非空了,input只能输入数字了等等。

    Java帮帮
  • InMobi旗下内容平台Glance获4500万美元投资 日活用户已超5000万

    近日,在短短2年时间里便获得5000万日活跃用户、印度增长最快且排名前三的内容平台Glance,正式对外宣布,已获得来自Mithril Capital的4500...

    数据猿
  • 点云存储文件格式简介

    在众多存储点云的文件格式中,有些格式是为点云数据“量身打造”的,也有一些文件格式(如计算机图形学和计算机和学领域的3D模型或通讯数据文件)具备表示...

    点云PCL博主
  • XLNet太贵?这位小哥在PyTorch Wrapper上做了个微缩版的

    不久前,谷歌大脑和CMU联合团队提出面向NLP预训练新方法XLNet,性能全面超越此前NLP领域的黄金标杆BERT,在20个任务上实现了性能的大幅提升,刷新了1...

    代码医生工作室

扫码关注云+社区

领取腾讯云代金券