JS正则表达式修饰符中multiline(/m)用法分析


Posted in Javascript onDecember 27, 2016

本文实例分析了JS正则表达式修饰符中multiline(/m)用法。分享给大家供大家参考,具体如下:

JavaScript正则表达式有3种修饰符/i、/m和/g。/i是我们最常用,也是最好理解的,代表正则表达式匹配的时候不区分大小写。

var regex = /abc/i;
alert(regex.test("aBc"));//true

/m代表多行模式multiline,如果目标字符串中不含有换行符\n,即只有一行,那么/m修饰符没有任何意义

var multiline = /abc/m;
var singleline = /abc/;
//目标字符串不含换行符\n
var target = "abcabcabc";

如果正则表达式中不含有^或$匹配字符串的开头或结尾,那么/m修饰符没有任何意义

//正则表达式不含^或$
var multiline = /abc/m;
var singleline = /abc/;
var target = "abcab\ncabc";

也就是说只有当目标字符串含有\n,而且正则表达式中含有^或$的时候,/m修饰符才有作用。如果 multiline 为 false,那么“^”与字符串的开始位置相匹配,而“$”与字符串的结束位置相匹配。 如果 multiline 为 true,那么“^”与字符串开始位置以及“\n”或“\r”之后的位置相匹配,而“$”与字符串结束位置以及“\n”或“\r”之前的位置相匹配。

var mutiline = /^abc/m;
var singleline = /^abc/;
var target = "ef\r\nabcd";
alert(mutiline.test(target));//true
alert(singleline.test(target));//false

\r\n在windows下代表换行,如果只有1个\n也是一样的效果。由于target不是以abc开头的字符串,所以匹配singleline的结果是false;由于target是多行字符串(含有\n),而第2行是以abc开头,所以匹配multiline结果是true。

Javascript 相关文章推荐
javascript 单选框,多选框美化代码
Aug 01 Javascript
javascript最常用与实用的创建类的代码
Aug 12 Javascript
js下拉框二级关联菜单效果代码具体实现
Aug 03 Javascript
通过复制Table生成word和excel的javascript代码
Jan 20 Javascript
JavaScript验证电子邮箱的函数
Aug 22 Javascript
兼容主流浏览器的JS复制内容到剪贴板
Dec 12 Javascript
AngularJS通过$sce输出html的方法
Sep 22 Javascript
angularJs select绑定的model取不到值的解决方法
Oct 08 Javascript
Vue一次性简洁明了引入所有公共组件的方法
Nov 28 Javascript
jquery实现下载图片功能
Jul 18 jQuery
微信小程序绑定手机号获取验证码功能
Oct 22 Javascript
JavaScript如何实现图片处理与合成
May 29 Javascript
jQuery Validate插件自定义验证规则的方法
Dec 27 #Javascript
webuploader模态框ueditor显示问题解决方法
Dec 27 #Javascript
正则中的回溯定义与用法分析【JS与java实现】
Dec 27 #Javascript
Vue.js双向绑定操作技巧(初级入门)
Dec 27 #Javascript
JS实现页面中所有img对象添加onclick事件及新窗口查看图片的方法
Dec 27 #Javascript
JS使用正则实现去掉字符串左右空格的方法
Dec 27 #Javascript
js使用Replace结合正则替换重复出现的字符串功能示例
Dec 27 #Javascript
You might like
ThinkPHP控制器间实现相互调用的方法
2014/10/31 PHP
javascript some()函数用法详解
2014/11/13 PHP
通过Unicode转义序列来加密,按你说的可以算是混淆吧
2007/05/06 Javascript
Javascript 的addEventListener()及attachEvent()区别分析
2009/05/21 Javascript
IE和Firefox的Javascript兼容性总结[推荐收藏]
2011/10/19 Javascript
js动态添加onclick事件可传参数与不传参数
2014/07/29 Javascript
JS对象与json字符串格式转换实例
2014/10/28 Javascript
常用javascript表单验证汇总
2020/07/20 Javascript
js获取url传值的方法
2015/12/18 Javascript
谈一谈js中的执行环境及作用域
2016/03/30 Javascript
深入理解js函数的作用域与this指向
2016/05/28 Javascript
基于CSS3和jQuery实现跟随鼠标方位的Hover特效
2016/07/25 Javascript
通过原生JS实现为元素添加事件的方法
2016/11/23 Javascript
AngularJS 使用ng-repeat报错 [ngRepeat:dupes]
2017/01/19 Javascript
jQuery插件echarts去掉垂直网格线用法示例
2017/03/03 Javascript
vue Render中slots的使用的实例代码
2017/07/19 Javascript
jQuery的时间datetime控件在AngularJs中的使用实例(分享)
2017/08/17 jQuery
Vue2.0+ElementUI实现表格翻页的实例
2017/10/23 Javascript
Express系列之multer上传的使用
2017/10/27 Javascript
Python的Flask框架中Flask-Admin库的简单入门指引
2015/04/07 Python
Python中用于计算对数的log()方法
2015/05/15 Python
在python win系统下 打开TXT文件的实例
2018/04/29 Python
python入门:这篇文章带你直接学会python
2018/09/14 Python
django2笔记之路由path语法的实现
2019/07/17 Python
python3 写一个WAV音频文件播放器的代码
2019/09/27 Python
Python2和Python3中@abstractmethod使用方法
2020/02/04 Python
使用Python合成图片的实现代码(图片添加个性化文本,图片上叠加其他图片)
2020/04/30 Python
python opencv实现图像配准与比较
2021/02/09 Python
Melijoe时尚童装德国官网:Melijoe德国
2016/09/03 全球购物
环境保护标语
2014/06/20 职场文书
有限责任公司股东合作协议书范本
2014/10/30 职场文书
实习生个人总结范文
2015/02/28 职场文书
总经理司机岗位职责
2015/04/10 职场文书
2015年物流客服工作总结
2015/07/27 职场文书
运动会200米广播稿
2015/08/19 职场文书
体育部部长竞选稿
2015/11/21 职场文书