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 方法,太恶心了。。。。
发了那么多电影相关的文章,也该写写前端方面的文章了,今天终于认真写了两篇。
交流技术?加作者微信吧
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Python数据分析实战(2)使用Pandas进行数据分析
- 【redis】redis内存管理、淘汰机制、内存优化
- 如何防止网站被扒的解决方法!
- 【python-面试题53-循环排序】寻找缺失的数
- 【python-leetcode42-区间合并】区间列表的交集
- 【python-leetcode202-快慢指针】快乐数
- vuejs之结合使用vue+element-ui搭建后台管理页面
- 【python-leetcode142-快慢指针】环形链表2
- 【python-leetcode141-快慢指针】环形链表
- python-快速排序
- 【python-leetcode75-双指针】颜色分类
- 【python-leetcode713-双指针】乘积小于k的子数组
- vuejs之构建简易音乐播放器
- vuejs小例子之天气查询
- 【python-leetcode259-双指针】三个数的最小和