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 03 Javascript
使用npm发布Node.JS程序包教程
Mar 02 Javascript
js实现滚动条滚动到页面底部继续加载
Dec 19 Javascript
浅析AngularJs HTTP响应拦截器
Dec 28 Javascript
AngularJS实现在ng-Options加上index的解决方法
Nov 03 Javascript
three.js实现围绕某物体旋转
Jan 25 Javascript
如何写好你的JavaScript【推荐】
Mar 02 Javascript
详解Vue组件之作用域插槽
Nov 22 Javascript
vue组件实践之可搜索下拉框功能
Nov 25 Javascript
浅谈Layui的eleTree树式选择器使用方法
Sep 25 Javascript
微信小程序tabBar设置实例解析
Nov 14 Javascript
微信小程序之导航滑块视图容器功能的实现代码(简单两步)
Jun 19 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中const与define的应用区别
2013/06/18 PHP
几道坑人的PHP面试题 试试看看你会不会也中招
2014/08/19 PHP
php函数与传递参数实例分析
2014/11/15 PHP
Windows下PHP开发环境搭建教程(Apache+PHP+MySQL)
2016/06/13 PHP
Jquery判断IE6等浏览器的代码
2011/04/05 Javascript
jQuery :first选择器使用介绍
2013/08/09 Javascript
浅析JavaScript中的typeof运算符
2013/11/30 Javascript
jQuery中bind,live,delegate与one方法的用法及区别解析
2013/12/30 Javascript
利用Vue.js指令实现全选功能
2016/09/08 Javascript
Easyui Tree获取当前选择节点的所有顶级父节点
2017/02/14 Javascript
详解打造 Vue.js 可复用组件
2017/03/24 Javascript
react在安卓中输入框被手机键盘遮挡问题的解决方法
2018/09/03 Javascript
Vue + Element UI图片上传控件使用详解
2019/08/20 Javascript
vue祖孙组件之间的数据传递案例
2020/12/07 Vue.js
[00:03]DOTA2新版本PA至宝展示
2014/11/19 DOTA
Python实现的简单算术游戏实例
2015/05/26 Python
Python 多核并行计算的示例代码
2017/11/07 Python
Python 实现引用其他.py文件中的类和类的方法
2018/04/29 Python
用Python写一个模拟qq聊天小程序的代码实例
2019/03/06 Python
python对csv文件追加写入列的方法
2019/08/01 Python
wxPython实现绘图小例子
2019/11/19 Python
html5+css3气泡组件的实现
2014/11/21 HTML / CSS
宝拉珍选澳大利亚官方购物网站:Paula’s Choice澳大利亚
2016/09/13 全球购物
金士达面试非笔试
2012/03/14 面试题
思想汇报范文
2013/11/04 职场文书
优秀毕业生自我鉴定
2014/02/11 职场文书
《悯农》教学反思
2014/04/28 职场文书
关于祖国的演讲稿
2014/05/04 职场文书
好书伴我成长演讲稿
2014/05/14 职场文书
暑假安全教育广播稿
2014/09/10 职场文书
实习生工作证明范本
2014/09/14 职场文书
社区党建工作汇报材料
2014/10/27 职场文书
2014年会计工作总结
2014/11/27 职场文书
安全员岗位职责
2015/02/10 职场文书
导游词之江苏同里古镇
2019/11/18 职场文书
Vue实现跑马灯样式文字横向滚动
2021/11/23 Vue.js