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 相关文章推荐
mysql输出数据赋给js变量报unterminated string literal错误原因
May 22 Javascript
JQuery动态创建DOM、表单元素的实现代码
Aug 09 Javascript
jQuery 中使用JSON的实现代码
Dec 01 Javascript
基于JQuery 选择器使用说明介绍
Apr 18 Javascript
快速解决FusionCharts联动的中文乱码问题
Dec 04 Javascript
离开当前页面前使用js判断条件提示是否要离开页面
May 02 Javascript
scrollWidth,clientWidth,offsetWidth的区别
Jan 13 Javascript
JQuery实现展开关闭层的方法
Feb 17 Javascript
JavaScript中var关键字的使用详解
Aug 14 Javascript
15位和18位身份证JS校验的简单实例
Jul 18 Javascript
浅谈Node.js 子进程与应用场景
Jan 24 Javascript
浅谈Vue-cli单文件组件引入less,sass,css样式的不同方法
Mar 13 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 项目的方法
2007/01/02 PHP
PHP判断远程url是否有效的几种方法小结
2011/10/08 PHP
深入PHP中慎用双等于(==)的详解
2013/06/06 PHP
PHP+FastCGI+Nginx配置PHP运行环境
2014/08/07 PHP
HTML Dom与Css控制方法
2010/10/25 Javascript
javascript 正则表达式相关应介绍
2012/11/27 Javascript
载入jQuery库的最佳方法详细说明及实现代码
2012/12/28 Javascript
jQuery使用height()获取高度需要注意的地方
2014/12/13 Javascript
在jQuery中使用$而避免跟其它库产生冲突的方法
2015/08/13 Javascript
Bootstrap每天必学之导航条(二)
2016/03/01 Javascript
js实现数组冒泡排序、快速排序原理
2016/03/08 Javascript
基于AngularJS前端云组件最佳实践
2016/10/20 Javascript
教你用十行node.js代码读取docx的文本
2017/03/08 Javascript
在iframe中使bootstrap的模态框在父页面弹出问题
2017/08/07 Javascript
vue实现全选和反选功能
2017/08/31 Javascript
JS求Number类型数组中最大元素方法
2018/04/08 Javascript
JavaScript中toLocaleString()和toString()的区别实例分析
2018/08/14 Javascript
[20:46]Ti4循环赛第三日VG vs DK
2014/07/12 DOTA
Python连接MySQL并使用fetchall()方法过滤特殊字符
2016/03/13 Python
详解Python中的type和object
2018/08/15 Python
python添加模块搜索路径和包的导入方法
2019/01/19 Python
Python中常用的8种字符串操作方法
2019/05/06 Python
如何使用Python实现斐波那契数列
2019/07/02 Python
简单了解django缓存方式及配置
2019/07/19 Python
python实现广度优先搜索过程解析
2019/10/19 Python
Django中的DateTimeField和DateField实现
2021/02/24 Python
荷兰超市:DEEN
2018/03/14 全球购物
编辑找工作求职信范文
2013/12/16 职场文书
迎新晚会邀请函
2014/02/01 职场文书
辅导员评语
2014/05/04 职场文书
新疆民族团结演讲稿
2014/08/27 职场文书
2014年教学工作总结
2014/11/13 职场文书
会计求职信怎么写
2015/03/20 职场文书
2015年安康杯竞赛活动总结
2015/03/26 职场文书
幼儿园毕业典礼园长致辞
2015/07/29 职场文书
大学生创业计划书
2019/06/24 职场文书