一次记住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 相关文章推荐
zeroclipboard复制到剪切板的flash
Aug 04 Javascript
javascript重写alert方法的实例代码
Mar 29 Javascript
JavaScript中跨域调用Flash的方法
Aug 11 Javascript
jQuery超简单选项卡完整实例
Sep 26 Javascript
jQuery 3.0中存在问题及解决办法
Jul 15 Javascript
AngularJS基础 ng-cloak 指令简单示例
Aug 01 Javascript
JavaScript中push(),join() 函数 实例详解
Sep 06 Javascript
在Js页面通过POST传递参数跳转到新页面详解
Aug 25 Javascript
微信小程序日历弹窗选择器代码实例
May 09 Javascript
解决layer.confirm快速点击会重复触发事件的问题
Sep 23 Javascript
element 中 el-menu 组件的无限极循环思路代码详解
Apr 26 Javascript
vue el-tree 默认展开第一个节点的实现代码
May 15 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
图书管理程序(二)
2006/10/09 PHP
Php Mssql操作简单封装支持存储过程
2009/12/11 PHP
phpMyAdmin无法登陆的解决方法
2017/04/27 PHP
php设计模式之职责链模式实例分析【星际争霸游戏案例】
2020/03/27 PHP
javascript简易缓动插件(源码打包)
2012/02/16 Javascript
javascript学习笔记(二) js一些基本概念
2012/06/18 Javascript
JQuery select控件的相关操作实现代码
2012/09/14 Javascript
javascript将相对路径转绝对路径示例
2014/03/14 Javascript
webpack学习教程之publicPath路径问题详解
2017/06/17 Javascript
Express+Nodejs 下的登录拦截实现代码
2017/07/01 NodeJs
webpack4之SplitChunksPlugin使用指南
2018/06/12 Javascript
vue3.0 CLI - 3.2 路由的初级使用教程
2018/09/20 Javascript
JavaScript数组去重的几种方法
2019/04/07 Javascript
Vue使用虚拟dom进行渲染view的方法
2019/12/26 Javascript
ES6 十大特性简介
2020/12/09 Javascript
跟老齐学Python之重回函数
2014/10/10 Python
Python3实现将文件树中所有文件和子目录归档到tar压缩文件的方法
2015/05/22 Python
python中将正则过滤的内容输出写入到文件中的实例
2018/10/21 Python
Python从文件中读取数据的方法讲解
2019/02/14 Python
python pandas移动窗口函数rolling的用法
2020/02/29 Python
Python 将 QQ 好友头像生成祝福语的实现代码
2020/05/03 Python
HTML5 Canvas 绘图——使用 Canvas 绘制图形图文教程 使用html5 canvas 绘制精美的图
2015/08/31 HTML / CSS
H5 meta小结(前端必看篇)
2016/08/24 HTML / CSS
法学毕业生自我鉴定
2013/11/08 职场文书
大二自我鉴定
2014/01/31 职场文书
上课看小说检讨书
2014/02/22 职场文书
《路旁的橡树》教学反思
2014/04/07 职场文书
小学爱国卫生月活动总结
2014/06/30 职场文书
学校教师安全责任书
2014/07/23 职场文书
十佳好少年事迹材料
2014/08/21 职场文书
教师师德考核自我评价
2014/09/13 职场文书
国家税务局干部作风整顿整改措施
2014/09/18 职场文书
子女赡养老人协议书
2016/03/23 职场文书
2019交通安全宣传标语集锦!
2019/06/28 职场文书
导游词之镇江焦山
2019/11/21 职场文书
《文化苦旅》读后感:阅读,让人诗意地栖居在大地上
2019/12/24 职场文书