学习JavaScript正则表达式


Posted in Javascript onNovember 13, 2015

JavaScript正则表达式学习:

有个在线调试正则的工具。下面的所有示例代码,都可以在codepen上查看到。

1.创建正则表达式

var re = /ab+c/; //方式一 正则表达式字面量

var re = new RegExp("ab+c"); //方式二 RegExp对象的构造函

1)正则表达式字面量在脚本加载后编译。若你的正则表达式是常量,使用这种方式可以获得更好的性能。

2)使用构造函数,提供了对正则表达式运行时的编译。当你知道正则表达式的模式会发生改变, 或者你事先并不了解它的模式或者是从其他地方(比如用户的输入),得到的代码这时比较适合用构造函数的方式。

2.正则表达式中的特殊字符

\    ^    $    *    +    ?    .    (x)    (?:x)    x(?=y)    x(?!y)    x|y    {n}  

{n,m}    [xyz]    [^xyz]    [\b]    \b    \B    \cX    \d    \D    \f    \n    \r   

\s    \S    \t    \v    \w    \W    \n    \0    \xhh    \uhhhh   

3.正则表达式中的方法

有6个,分别是exec、test、match、search、replace和split

exec和test的语法都是regexObj调用,match、search、replace和split的语法都是string调用。

exec:

方法为指定的一段字符串执行搜索匹配操作。它的返回值是一个数组或者 null。语法如下:regexObj.exec(str)

示例代码:

var re = /quick\s(brown).+?(jumps)/ig;
var result = re.exec('The Quick Brown Fox Jumps Over The Lazy Dog');
返回结果:

学习JavaScript正则表达式

test:

一个在字符串中测试是否匹配的RegExp方法,它返回true或false。语法如下:regexObj.exec(str) 

match:

一个在字符串中执行查找匹配的RegExp方法,它返回一个数组或者在未匹配到时返回null。

与exec略有不同,首先是调用方式,math是由字符串调用,而exec是由RegexObj调用。

其次,如果表达式中有“g”标记,那么返回一个匹配的字符串数组,如果没有就会和exec返回的一样。下面这个demo就是有“g”。语法如下:str.match(regexp)

示例代码:

var re = /quick\s(brown).+?(jumps)/ig;
var result = re.exec('The Quick Brown Fox Jumps Over The Lazy Dog');

返回结果:

学习JavaScript正则表达式

search:

一个在字符串中测试匹配的String方法,它返回匹配到的位置索引,或者在失败时返回-1。语法如下:str.search(regexp)

例如上面的示例代码如果是调用search,返回数据就是4。

replace:

一个在字符串中执行查找匹配的String方法,并且使用替换字符串替换掉匹配到的子字符串。语法如下:str.replace(regexp|substr,newSubStr|function[,flags])

var re = /(\w+)\s(\w+)/;
var str = "John Smith";
var result = str.replace(re, "$2, $1");

返回的结果将是:“Smith, John”

split:

一个使用正则表达式或者一个固定字符串分隔一个字符串,并将分隔后的子字符串存储到数组中的String方法。语法如下:str.split([separator[,limit]])

limit就是限制分割后的数组中的个数。下面的是一个demo,但是表达式中有一个是加了括号,一个没加,返回的数据是不一样的。

示例代码:

var re = /(\d)/;
var result = 'Hello 1 word. Sentence number 2.'.split(re);
console.log(result);
var re = /\d/;
var result = 'Hello 1 word. Sentence number 2.'.split(re);
console.log(result);

返回结果:

学习JavaScript正则表达式

4.正则表达式执行返回信息

var myRe = new RegExp("d(b+)d", "g");
var myArray = myRe.exec("cdbbdbsbz");
console.log(myArray);

代码中返回的结果如下:

学习JavaScript正则表达式

学习JavaScript正则表达式

5.正则表达式标志

学习JavaScript正则表达式

var re = /\w+\s/g;//表达式一
var re = new RegExp("\\w+\\s", "g");//表达式二
var str = "fee fi fo fum";
var myArray = str.match(re);
console.log(myArray);

表达式一和表达式二返回的结果是一样的。都是下面的那个数组:

学习JavaScript正则表达式

 以上就是本文的全部内容,希望对大家的学习有所帮助。

Javascript 相关文章推荐
Apply an AutoFormat to an Excel Spreadsheet
Jun 12 Javascript
jquery实现图片左右间隔滚动特效(可自动播放)
May 08 Javascript
javascript实现跳转菜单的具体方法
Jul 05 Javascript
兼容Firefox的Javascript XSLT 处理XML文件
Dec 31 Javascript
jQuery中unwrap()方法用法实例
Jan 16 Javascript
Java中Timer的用法详解
Oct 21 Javascript
jQuery链式操作实例分析
Nov 16 Javascript
学习JavaScript设计模式(封装)
Nov 26 Javascript
jquery自定义插件开发之window的实现过程
May 06 Javascript
js模拟百度模糊搜索的实例
Aug 04 Javascript
JavaScript比较同一天的时间大小实例代码
Feb 09 Javascript
微信小程序出现wx.getLocation再次授权问题的解决方法分析
Jan 16 Javascript
jquery实现九宫格大转盘抽奖
Nov 13 #Javascript
jquery动画效果学习笔记(8种效果)
Nov 13 #Javascript
javascript:void(0)点击登录没反应怎么解决
Nov 13 #Javascript
javascript:void(0)是什么意思及href=#与href=javascriptvoid(0)的区别
Nov 13 #Javascript
每天一篇javascript学习小结(Date对象)
Nov 13 #Javascript
有关Promises异步问题详解
Nov 13 #Javascript
以jQuery中$.Deferred对象为例讲解promise对象是如何处理异步问题
Nov 13 #Javascript
You might like
PHP垃圾回收机制简单说明
2010/07/22 PHP
兼容性最强的PHP生成缩略图的函数代码(修改版)
2011/01/18 PHP
很让人受教的 提高php代码质量36计
2012/09/05 PHP
推荐25款php中非常有用的类库
2014/09/29 PHP
10款实用的PHP开源工具
2015/10/23 PHP
PHP session会话操作技巧小结
2016/09/27 PHP
php 将json格式数据转换成数组的方法
2018/08/21 PHP
PHP常用正则表达式精选(推荐)
2019/05/28 PHP
基于jquery的button默认enter事件(回车事件)。
2011/05/18 Javascript
javascript 进阶篇2 CSS XML学习
2012/03/14 Javascript
JQuery插件Style定制化方法的分析与比较
2012/05/03 Javascript
简单总结JavaScript中的String字符串类型
2016/05/26 Javascript
jQuery Validate验证框架详解(推荐)
2016/12/17 Javascript
JavaScript学习笔记之惰性函数示例详解
2017/08/27 Javascript
angularjs实现简单的购物车功能
2017/09/21 Javascript
原生JavaScript实现的简单放大镜效果示例
2018/02/07 Javascript
iview日期控件,双向绑定日期格式的方法
2018/03/15 Javascript
vue.js与后台数据交互的实例讲解
2018/08/08 Javascript
[01:42]辉夜杯战队访谈宣传片—FANTUAN
2015/12/25 DOTA
[00:15]TI9地铁玩家打卡
2019/08/11 DOTA
[52:37]完美世界DOTA2联赛循环赛 Forest vs DM BO2第一场 10.29
2020/10/29 DOTA
python检测服务器是否正常
2014/02/16 Python
python错误:AttributeError: 'module' object has no attribute 'setdefaultencoding'问题的解决方法
2014/08/22 Python
解决python3 网络请求路径包含中文的问题
2018/05/10 Python
PacSun官网:加州生活方式服装、鞋子和配饰
2018/03/10 全球购物
大学新生军训个人的自我评价
2013/10/03 职场文书
物业客服专员岗位职责
2013/11/30 职场文书
公司爱心捐款倡议书
2014/05/14 职场文书
体育专业自荐书
2014/05/29 职场文书
一般党员对照检查材料
2014/09/24 职场文书
2015秋季幼儿园开学寄语
2015/03/25 职场文书
迎新晚会主持词开场白
2015/05/28 职场文书
党支部对转正的意见
2015/06/02 职场文书
如何解决php-fpm启动不了问题
2021/11/17 PHP
JavaScript实现栈结构详细过程
2021/12/06 Javascript
JS开发前端团队展示控制器来为成员引流
2022/08/14 Javascript