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 相关文章推荐
[JS]点出统计器
Oct 11 Javascript
jQuery之浮动窗口实现代码(两种方法)
Sep 08 Javascript
基于jquery的获取浏览器窗口大小的代码
Mar 28 Javascript
js中的push和join方法使用介绍
Oct 08 Javascript
angular简介和其特点介绍
Jan 29 Javascript
jQuery选择id属性带有点符号元素的方法
Mar 17 Javascript
jquery中取消和绑定hover事件的实现代码
Jun 02 Javascript
轻松掌握JavaScript单例模式
Aug 25 Javascript
JS实现上传图片实时预览功能
May 22 Javascript
浅谈react+es6+webpack的基础配置
Aug 09 Javascript
JS实现的简单tab切换功能完整示例
Jun 20 Javascript
angular4实现带搜索的下拉框
Mar 25 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
php 无限级 SelectTree 类
2009/05/19 PHP
深入php函数file_get_contents超时处理的方法详解
2013/06/03 PHP
PHP中获取时间的下一周下个月的方法
2014/03/18 PHP
PHP实现的浏览器检查类
2016/04/11 PHP
PHP常见字符串处理函数用法示例【转换,转义,截取,比较,查找,反转,切割】
2016/12/24 PHP
基于jquery实现的移入页面上空文本框时,让它变为焦点,移出清除焦点
2011/07/26 Javascript
javascript动画浅析
2012/08/30 Javascript
ExtJS4 Grid改变单元格背景颜色及Column render学习
2013/02/06 Javascript
关于JS判断图片是否加载完成且获取图片宽度的方法
2013/04/09 Javascript
JavaScript中this详解
2015/09/01 Javascript
js编写贪吃蛇的小游戏
2020/08/24 Javascript
JQuery EasyUI学习教程之datagrid 添加、修改、删除操作
2016/07/09 Javascript
基于jQuery实现歌词滚动版音乐播放器的代码
2016/09/17 Javascript
js获取腾讯视频ID的方法
2016/10/03 Javascript
React中this丢失的四种解决方法
2019/03/12 Javascript
SpringBoot在yml配置文件中配置druid的操作
2020/11/16 Javascript
[00:28]DOTA2北京网鱼队选拔赛
2015/04/08 DOTA
[02:32]【DOTA2亚洲邀请赛】iceice,梦开始的地方
2017/03/13 DOTA
[01:02:45]完美世界DOTA2联赛 LBZS vs Forest 第三场 11.07
2020/11/09 DOTA
Python中遍历字典过程中更改元素导致异常的解决方法
2016/05/12 Python
Matplotlib中文乱码的3种解决方案
2018/11/15 Python
Python设计模式之策略模式实例详解
2019/01/21 Python
复化梯形求积分实例——用Python进行数值计算
2019/11/20 Python
python实现sm2和sm4国密(国家商用密码)算法的示例
2020/09/26 Python
python安装第三方库如xlrd的方法
2020/10/31 Python
中学教师培训制度
2014/01/31 职场文书
革命先烈的英雄事迹材料
2014/02/15 职场文书
大学生实习鉴定评语
2014/04/25 职场文书
法人授权委托书样本
2014/09/19 职场文书
民主评议党员自我评议范文2014
2014/09/26 职场文书
2015年社区创卫工作总结
2015/04/21 职场文书
房地产项目合作意向书
2015/05/08 职场文书
SpringBoot 拦截器妙用你真的了解吗
2021/07/01 Java/Android
图文详解matlab原始处理图像几何变换
2021/07/09 Python
对象析构函数__del__在Python中何时使用
2022/03/22 Python
5人制售《绝地求生》游戏外挂获利500多万元 被判刑
2022/03/31 其他游戏