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 相关文章推荐
jquery的$getjson调用并获取远程的JSON字符串问题
Dec 10 Javascript
Js冒泡事件详解及阻止示例
Mar 21 Javascript
浅析js中substring和substr的方法
Nov 09 Javascript
详解AngularJS控制器的使用
Mar 09 Javascript
jqGrid 学习笔记整理——进阶篇(一 )
Apr 17 Javascript
EditPlus 正则表达式 实战(3)
Dec 15 Javascript
javascript中BOM基础知识总结
Feb 14 Javascript
基于Vue的SPA动态修改页面title的方法(推荐)
Jan 02 Javascript
解决Vue打包之后文件路径出错的问题
Mar 06 Javascript
浅谈redux以及react-redux简单实现
Aug 28 Javascript
详解小程序input框失焦事件在提交事件前的处理
May 05 Javascript
JS实现小星星特效
Dec 24 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
web方式ftp
2006/10/09 PHP
通过ODBC连接的SQL SERVER实例
2006/10/09 PHP
通过文字传递创建的图形按钮
2006/10/09 PHP
php中mysql模块部分功能的简单封装
2011/09/30 PHP
php数据访问之增删改查操作
2016/05/09 PHP
php禁用函数设置及查看方法详解
2016/07/25 PHP
基于php实现的php代码加密解密类完整实例
2016/10/12 PHP
CentOS系统中PHP安装扩展的方式汇总
2017/04/09 PHP
javascript 必知必会之closure
2009/09/21 Javascript
js跨域问题之跨域iframe自适应大小实现代码
2010/07/17 Javascript
jquery 插件学习(五)
2012/08/06 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(二)人物行走的实现
2013/01/23 Javascript
原生js ActiveXObject获取execl里面的值
2013/11/01 Javascript
javascript的switch用法注意事项分析
2015/02/02 Javascript
javascript结合canvas实现图片旋转效果
2015/05/03 Javascript
JQuery实现左右滚动菜单特效
2015/09/28 Javascript
第二次聊一聊JS require.js模块化工具的基础知识
2016/04/17 Javascript
JS传递对象数组为参数给后端,后端获取的实例代码
2016/06/28 Javascript
JavaScript中关键字 in 的使用方法详解
2016/10/17 Javascript
功能强大的jquery.validate表单验证插件
2016/11/07 Javascript
jQuery实现checkbox全选功能完整实例
2018/07/12 jQuery
[30:55]完美世界DOTA2联赛PWL S2 Magma vs LBZS 第二场 11.18
2020/11/18 DOTA
python基于右递归解决八皇后问题的方法
2015/05/25 Python
Python中list查询及所需时间计算操作示例
2018/06/21 Python
python 字典操作提取key,value的方法
2019/06/26 Python
Python fileinput模块如何逐行读取多个文件
2020/10/05 Python
前端实现弹幕效果的方法总结(包含css3和canvas的实现方式)
2018/07/12 HTML / CSS
div或img图片高度随宽度自适应的方法
2020/02/06 HTML / CSS
银行出纳岗位职责
2013/11/25 职场文书
七年级数学教学反思
2014/01/22 职场文书
我为自己代言广告词
2014/03/18 职场文书
主管竞聘书范文
2014/03/31 职场文书
本科毕业生应聘自荐信范文
2014/06/26 职场文书
文明单位申报材料
2014/12/23 职场文书
企业爱心捐款倡议书
2015/04/27 职场文书
JavaScript获取URL参数的方法分享
2022/04/07 Javascript