一次记住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中的array数组使用技巧
Jan 31 Javascript
从面试题学习Javascript 面向对象(创建对象)
Mar 30 Javascript
jQuery中:lt选择器用法实例
Dec 29 Javascript
JavaScript学习小结之被嫌弃的eval函数和with语句实例详解
Aug 01 Javascript
JS调用某段SQL语句的方法
Oct 20 Javascript
vue+axios实现登录拦截的实例代码
May 22 Javascript
Vue.directive使用注意(小结)
Aug 31 Javascript
详解vue2.0模拟后台json数据
May 16 Javascript
Vue2.0实现简单分页及跳转效果
Jul 29 Javascript
vue.js中ref和$refs的使用及示例讲解
Aug 14 Javascript
nuxt+axios实现打包后动态修改请求地址的方法
Apr 22 Javascript
如何在vue中使用kindeditor富文本编辑器
Dec 19 Vue.js
利用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
用客户端js实现带省略号的分页
2013/04/27 Javascript
JavaScript立即执行函数的三种不同写法
2014/09/05 Javascript
JavaScript判断前缀、后缀是否是空格的方法
2015/04/15 Javascript
详解JavaScript中void语句的使用
2015/06/04 Javascript
BootStrap初学者对弹出框和进度条的使用感觉
2016/06/27 Javascript
jQuery Ajax 上传文件处理方式介绍(推荐)
2016/06/30 Javascript
javascript中href和replace的比较(详解)
2016/11/25 Javascript
jQuery中each循环的跳出和结束实例
2017/08/16 jQuery
jqgrid实现简单的单行编辑功能
2017/09/30 Javascript
js实现简单的打印表格
2020/01/15 Javascript
js实现弹幕飞机效果
2020/08/27 Javascript
[02:54]辉夜杯主赛事第二日败者组 iG.V赛后采访
2015/12/26 DOTA
使用python Django做网页
2013/11/04 Python
python中input()与raw_input()的区别分析
2016/02/27 Python
python使用fcntl模块实现程序加锁功能示例
2017/06/23 Python
Python OpenCV实现图片上输出中文
2018/01/22 Python
Python使用pip安装pySerial串口通讯模块
2018/04/20 Python
python实现监控某个服务 服务崩溃即发送邮件报告
2018/06/21 Python
pycharm配置pyqt5-tools开发环境的方法步骤
2019/02/11 Python
Python实现 PS 图像调整中的亮度调整
2019/06/28 Python
python内存动态分配过程详解
2019/07/15 Python
解决Python 异常TypeError: cannot concatenate 'str' and 'int' objects
2020/04/08 Python
GNC健安喜美国官网:美国第一营养品牌
2016/07/22 全球购物
德国百年厨具品牌WMF美国站:WMF美国
2016/09/12 全球购物
欧舒丹澳洲版:L’OCCITANE
2017/07/17 全球购物
皮姆斯勒语言学习:Pimsleur Language Programs
2018/06/30 全球购物
餐厅总厨求职信
2014/03/04 职场文书
低碳生活倡议书
2014/04/14 职场文书
初三学生评语大全
2014/04/24 职场文书
教师考察材料范文
2014/06/03 职场文书
评职称个人总结
2015/03/05 职场文书
公司清洁工岗位职责
2015/04/15 职场文书
建国大业观后感600字
2015/06/01 职场文书
Mysql数据库索引面试题(程序员基础技能)
2021/05/31 MySQL
默认网关不可用修复后过一会又不好使了解决方法
2022/04/08 数码科技
Android在Sqlite3中的应用及多线程使用数据库的建议
2022/04/24 Java/Android