一次记住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 相关文章推荐
用js计算页面执行时间的函数
Dec 07 Javascript
用showModalDialog弹出页面后,提交表单总是弹出一个新窗口
Jul 18 Javascript
javascript获取鼠标位置部分的实例代码(兼容IE,FF)
Aug 05 Javascript
Jquery倒计时源码分享
May 16 Javascript
node.js中的fs.mkdirSync方法使用说明
Dec 17 Javascript
JavaScript数组合并的多种方法
May 22 Javascript
javascript 广告移动特效的实现代码
Jun 25 Javascript
微信小程序 Toast自定义实例详解
Jan 20 Javascript
jQuery实现拖动效果的实例代码
Jun 25 jQuery
使用Node.js搭建静态资源服务详细教程
Aug 02 Javascript
深入了解JavaScript 防抖和节流
Sep 12 Javascript
如何构建 vue-ssr 项目的方法步骤
Aug 04 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
PHP4 与 MySQL 交互使用
2006/10/09 PHP
php 魔术函数使用说明
2010/02/21 PHP
php file_exists 检查文件或目录是否存在的函数
2010/05/10 PHP
PHP自动重命名文件实现方法
2014/11/04 PHP
php编程实现简单的网页版计算器功能示例
2017/04/26 PHP
PHP进阶学习之命名空间基本用法分析
2019/06/18 PHP
javascript 一些用法小结
2009/09/11 Javascript
js中将具有数字属性名的对象转换为数组
2011/03/06 Javascript
使用JavaScript 实现对象 匀速/变速运动的方法
2013/05/08 Javascript
jQuery focus和blur事件的应用详解
2014/01/26 Javascript
javascript学习指南之回调问题
2016/04/23 Javascript
jQuery unbind 删除绑定事件详解
2016/05/24 Javascript
AngularJS 路由和模板实例及路由地址简化方法(必看)
2016/06/24 Javascript
JavaScript实现的商品抢购倒计时功能示例
2017/04/17 Javascript
js指定步长实现单方向匀速运动
2017/07/17 Javascript
JavaScript数组push方法使用注意事项
2017/10/30 Javascript
Vue中的字符串模板的使用
2018/05/17 Javascript
[01:52]2014DOTA2西雅图邀请赛 V社开大会你不知道的小秘密
2014/07/08 DOTA
python获取android设备的GPS信息脚本分享
2015/03/06 Python
浅析Python中的多重继承
2015/04/28 Python
python中global用法实例分析
2015/04/30 Python
Python变量和字符串详解
2017/04/29 Python
Python在groupby分组后提取指定位置记录方法
2018/04/20 Python
pytorch之添加BN的实现
2020/01/06 Python
Python开发之身份证验证库id_validator验证身份证号合法性及根据身份证号返回住址年龄等信息
2020/03/20 Python
利用Python将图片中扭曲矩形的复原
2020/09/07 Python
python 装饰器的使用示例
2020/10/10 Python
python利用文件时间批量重命名照片和视频
2021/02/09 Python
python实现学生信息管理系统源码
2021/02/22 Python
10分钟入门CSS3 Animation
2018/12/25 HTML / CSS
Groupon西班牙官方网站:在线优惠券和交易,节省高达70%
2021/03/13 全球购物
趣味比赛活动方案
2014/02/15 职场文书
村党支部书记承诺书
2014/05/29 职场文书
国际贸易专业求职信
2014/06/04 职场文书
公民授权委托书
2014/10/15 职场文书
MySQL 自动填充 create_time 和 update_time
2022/05/20 MySQL