一次记住JavaScript的6个正则表达式方法


Posted in Javascript onFebruary 22, 2018

首先6这个具象的数字可以帮助我们整体记忆了。

范围

js中有两个类可以让正则发挥作用

一次记住JavaScript的6个正则表达式方法

创建

var re = /ab+c/

方式一:正则表达字面量,这种直接是常量的表示用法可以让js解析器提高性能

var re = new RegExp('ab+c')

方式二:构造函数,这种方式可以在runtime的时候动态确定正则是什么,更加灵活

常用特殊字符

来记忆一些常用特殊字符,这个是正则本身的范畴了,是不是总觉得记不住?其实我也记不住,每次都是去搜索和online验证来完成一些任务。我也困恼过,其实最后还是因为自己写的少吧,唯手熟尔。。。下面的总结不写具体内容,只列出具体特殊字符和分类,可以尝试一下说出他们的意义,我觉得比看表格更有利于记忆。。。

  • 匹配量的:* + ? {n} {n,} {n,m} .
  • 匹配位置的:^ $
  • 匹配并且需要支持分组的时候需要括号来包裹:(匹配的模式)
  • 匹配条件的:|
  • 匹配集合的:[]
  • 匹配非集合的:[^]

还有大量的由\和字母组成的特殊含义的匹配模式,这些用到的时候查询就可以了,没有必要记住,其实我是记不住。。。

例子

例子是最好的老师。。。。 例子来源于MDN

我想得到匹配后的数组

var myRe = /d(b+)d/g; 
myRe.exec('cdbbdbsdbdbz') // ["dbbd", "bb", index: 1, input: "cdbbdbsdbdbz"] 
myRe.exec('cdbbdbsdbdbz') // ["dbd", "b", index: 7, input: "cdbbdbsdbdbz"] 
myRe.exec('cdbbdbsdbdbz') // null

注意对于每个正则对象的exec每次调用都只返回一个匹配,如果需要拿到全部匹配就需要while循环获取,循环结束标志是返回值为null

'cdbbdbsdbdbz'.match(/d(b+)d/g) // ["dbbd", "dbd"] 
'cdbbdbsdbdbz'.match(/d(b+)d/) // ["dbbd", "bb", index: 1, input: "cdbbdbsdbdbz"]

string的match挺奇怪的,如果是global匹配则出所有匹配的数组,如果不是,则出第一个匹配的字符串,以及相应的捕获内容

var str = 'hello world!'; 
var result = /^hello/.test(str); // true 
'cdbbdbsdbdbz'.search(/d(b+)d/) // 1 
'xxx'.search(/d(b+)d/) // -1 没有匹配 
var names = 'Harry Trump ;Fred Barney; Helen Rigby ; Bill Abel ;Chris Hand '; 
var re = /\s*;\s*/; 
var nameList = names.split(re); 
// [ "Harry Trump", "Fred Barney", "Helen Rigby", "Bill Abel", "Chris Hand " ]
var re = /apples/gi; 
var str = 'Apples are round, and apples are juicy.'; 
var newstr = str.replace(re, 'oranges'); 
// // oranges are round, and oranges are juicy.

我想得到是否匹配

var str = 'hello world!'; 
var result = /^hello/.test(str); // true

我只想得到第一次匹配的位置

'cdbbdbsdbdbz'.search(/d(b+)d/) // 1 
'xxx'.search(/d(b+)d/) // -1 没有匹配

我想按照匹配拆分字符串

var names = 'Harry Trump ;Fred Barney; Helen Rigby ; Bill Abel ;Chris Hand '; 
var re = /\s*;\s*/; 
var nameList = names.split(re); 
// [ "Harry Trump", "Fred Barney", "Helen Rigby", "Bill Abel", "Chris Hand " ]

我想按照匹配覆盖字符串

var re = /apples/gi; 
var str = 'Apples are round, and apples are juicy.'; 
var newstr = str.replace(re, 'oranges'); 
// // oranges are round, and oranges are juicy.

这个replace方法的用法着实比较多,只放了最基础用法,当有需求的时候再查就好了,整体有概念了再实践比强行记忆要好吧~

总结

以上所述是小编给大家介绍的一次记住JavaScript的6个正则表达式方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
jquery post方式传递多个参数值后台以数组的方式进行接收
Jan 11 Javascript
ie 7/8不支持trim的属性的解决方案
May 23 Javascript
js 模式窗口(模式对话框和非模式对话框)的使用介绍
Jul 17 Javascript
JavaScript判断变量是对象还是数组的方法
Aug 28 Javascript
JS打开新窗口防止被浏览器阻止的方法
Jan 03 Javascript
JavaScript中Number.MAX_VALUE属性的使用方法
Jun 04 Javascript
解析如何利用iframe标签以及js制作时钟
Dec 08 Javascript
bootstrap基本配置_动力节点Java学院整理
Jul 14 Javascript
JS使用Prim算法和Kruskal算法实现最小生成树
Jan 17 Javascript
详解ng-alain动态表单SF表单项设置必填和正则校验
Jun 11 Javascript
layui实现数据分页功能
Jul 27 Javascript
高性能js数组去重(12种方法,史上最全)
Dec 21 Javascript
利用CDN加速react webpack打包后的文件详解
Feb 22 #Javascript
node内置调试方法总结
Feb 22 #Javascript
详解vue移动端日期选择组件
Feb 22 #Javascript
webpack 单独打包指定JS文件的方法
Feb 22 #Javascript
webpack中使用iconfont字体图标的方法
Feb 22 #Javascript
微信小程序之圆形进度条实现思路
Feb 22 #Javascript
webpack下实现动态引入文件方法
Feb 22 #Javascript
You might like
需要注意的几个PHP漏洞小结
2012/02/05 PHP
用js实现上传图片前的预览(TX的面试题)
2007/08/14 Javascript
Jquery优化效率 提升性能解决方案
2010/09/06 Javascript
加速IE的Javascript document输出的方法
2010/12/02 Javascript
js从10种颜色中随机取色实现每次取出不同的颜色
2013/10/23 Javascript
Jquery 动态循环输出表格具体方法
2013/11/23 Javascript
AspNet中使用JQuery boxy插件的确认框
2015/05/20 Javascript
深入剖析JavaScript编程中的对象概念
2015/10/21 Javascript
javascript发送短信验证码实现代码
2015/11/12 Javascript
浅析JavaScript作用域链、执行上下文与闭包
2016/02/01 Javascript
浅析JS操作DOM的一些常用方法
2016/05/13 Javascript
JavaScript获取中英文混合字符串长度的方法示例
2017/02/04 Javascript
详解React native fetch遇到的坑
2018/08/30 Javascript
vue 中固定导航栏的实例代码
2019/11/01 Javascript
js模拟实现烟花特效
2020/03/10 Javascript
javascript实现点击小图显示大图
2020/11/29 Javascript
[01:28:43]2014 DOTA2华西杯精英邀请赛5 24 DK VS CIS
2014/05/25 DOTA
python基础教程之字典操作详解
2014/03/25 Python
Python发送Email方法实例
2014/08/21 Python
跟老齐学Python之玩转字符串(1)
2014/09/14 Python
python中global与nonlocal比较
2014/11/21 Python
Python格式化日期时间操作示例
2018/06/28 Python
浅谈pycharm下找不到sqlalchemy的问题
2018/12/03 Python
详解Django 时间与时区设置问题
2019/07/23 Python
tensorflow通过模型文件,使用tensorboard查看其模型图Graph方式
2020/01/23 Python
Python Scrapy图片爬取原理及代码实例
2020/06/12 Python
numpy实现RNN原理实现
2021/03/02 Python
HTML+CSS3模拟心的跳动实例代码
2017/09/05 HTML / CSS
法国时尚品牌乐都特瑞士站:La Redoute瑞士
2016/09/05 全球购物
护士自我鉴定范文
2013/10/06 职场文书
2014年工会工作总结
2014/11/12 职场文书
幼儿教师辞职信
2015/02/27 职场文书
2015年班组建设工作总结
2015/05/13 职场文书
2016年小学优秀班主任事迹材料
2016/02/29 职场文书
HTML5页面音频自动播放的实现方式
2021/06/21 HTML / CSS
基于CSS制作创意端午节专属加载特效
2022/06/01 HTML / CSS