一次记住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 相关文章推荐
javascript延时重复执行函数 lLoopRun.js
Jun 29 Javascript
Javascript 入门基础学习
Mar 10 Javascript
js网页中的(运行代码)功能实现思路
Feb 04 Javascript
JavaScript加强之自定义event事件
Sep 21 Javascript
Js 导出table内容到Excel的简单实例
Nov 19 Javascript
JavaScript数据绑定实现一个简单的 MVVM 库
Apr 08 Javascript
JS实现回到页面顶部动画效果的简单实例
May 24 Javascript
jQuery增加和删除表格项目及实现表格项目排序的方法
May 30 Javascript
jQuery多个版本和其他js库冲突的解决方法
Aug 11 Javascript
AngularJS使用ng-repeat遍历二维数组元素的方法详解
Nov 11 Javascript
Angular5中调用第三方库及jQuery的添加的方法
Jun 07 jQuery
ES6新增的数组知识实例小结
May 23 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 GD绘制24小时柱状图
2008/06/28 PHP
php preg_filter执行一个正则表达式搜索和替换
2012/02/27 PHP
新浪SAE云平台下使用codeigniter的数据库配置
2014/06/12 PHP
编写PHP脚本过滤用户上传的图片
2015/07/03 PHP
关于PHP虚拟主机概念及如何选择稳定的PHP虚拟主机
2018/11/20 PHP
tp5(thinkPHP5)框架连接数据库的方法示例
2018/12/24 PHP
JQuery 1.4 中的Ajax问题
2010/01/23 Javascript
javascript通过class来获取元素实现代码
2013/02/20 Javascript
JavaScript日期时间格式化函数分享
2014/05/05 Javascript
推荐5 个常用的JavaScript调试技巧
2015/01/08 Javascript
实例剖析AngularJS框架中数据的双向绑定运用
2016/03/04 Javascript
Bootstrap~多级导航(级联导航)的实现效果【附代码】
2016/03/08 Javascript
jQuery EasyUI tree 使用拖拽时遇到的错误小结
2016/10/10 Javascript
JS实现图片放大缩小的方法
2017/02/15 Javascript
js获取当前周、上一周、下一周日期
2017/03/19 Javascript
微信小程序 首页制作简单实例
2017/04/07 Javascript
ztree实现权限横向显示功能
2017/05/20 Javascript
JS中超越现实的匿名函数用法实例分析
2019/06/21 Javascript
如何在项目中使用log4.js的方法步骤
2019/07/16 Javascript
layui 选择列表,打勾,点击确定返回数据的例子
2019/09/02 Javascript
Python中列表和元组的使用方法和区别详解
2020/12/30 Python
Python数据结构之哈夫曼树定义与使用方法示例
2018/04/22 Python
python 把文件中的每一行以数组的元素放入数组中的方法
2018/04/29 Python
只需7行Python代码玩转微信自动聊天
2019/01/27 Python
python读取目录下所有的jpg文件,并显示第一张图片的示例
2019/06/13 Python
python实现列表中最大最小值输出的示例
2019/07/09 Python
python实现切割url得到域名、协议、主机名等各个字段的例子
2019/07/25 Python
深入了解Python 变量作用域
2020/07/24 Python
python 19个值得学习的编程技巧
2020/08/15 Python
加拿大时装零售商:Influence U
2018/12/22 全球购物
CHARLES & KEITH台湾官网:新加坡时尚品牌
2019/07/30 全球购物
索引覆盖(Index Covering)查询含义
2012/02/18 面试题
八一建军节演讲稿
2014/09/10 职场文书
员工升职自我评价
2019/03/26 职场文书
读《庄子》有感:美而不自知
2019/11/06 职场文书
Python实现Hash算法
2022/03/18 Python