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之折叠面板的深入解析
Jun 19 Javascript
js获取url中指定参数值的示例代码
Dec 14 Javascript
JQuery中基础过滤选择器用法实例分析
May 18 Javascript
Jquery幻灯片特效代码分享--打开页面随机选择切换方式(3)
Aug 15 Javascript
全国省市二级联动下拉菜单 js版
May 10 Javascript
BootStrap+Angularjs+NgDialog实现模式对话框
Aug 24 Javascript
深入理解javascript函数参数与闭包
Dec 12 Javascript
详解基于Vue+Koa的pm2配置
Oct 24 Javascript
jquery 获取索引值在一定范围的列表方法
Jan 25 jQuery
Bootstrap Table中的多选框删除功能
Jul 15 Javascript
详解vue 项目白屏解决方案
Oct 31 Javascript
js实现树形数据转成扁平数据的方法示例
Feb 27 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
PHP6新特性分析
2016/03/03 PHP
PHP查询分页的实现代码
2017/06/09 PHP
CL vs ForZe BO5 第一场 2.13
2021/03/10 DOTA
javascript date格式化示例
2013/09/25 Javascript
jqGrid增加时--判断开始日期与结束日期(实例解析)
2013/11/08 Javascript
判断客户浏览器是否支持cookie的示例代码
2013/12/23 Javascript
jQuery中animate用法实例分析
2015/03/09 Javascript
javascript中call apply 的应用场景
2015/04/16 Javascript
javascript格式化指定日期对象的方法
2015/04/21 Javascript
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
2016/12/14 Javascript
如何写好你的JavaScript【推荐】
2017/03/02 Javascript
js实现一个猜数字游戏
2017/03/31 Javascript
vue轮播图插件vue-concise-slider的使用
2018/03/13 Javascript
详解mpvue scroll-view自动回弹bug解决方案
2018/10/01 Javascript
React精髓!一篇全概括小结(急速)
2019/05/23 Javascript
vue实现搜索过滤效果
2019/05/28 Javascript
vue递归组件实战之简单树形控件实例代码
2019/08/27 Javascript
selenium+java中用js来完成日期的修改
2019/10/31 Javascript
Python对象的深拷贝和浅拷贝详解
2014/08/25 Python
Python字符串和字典相关操作的实例详解
2017/09/23 Python
python微信跳一跳系列之棋子定位颜色识别
2018/02/26 Python
python使用openpyxl库修改excel表格数据方法
2018/05/03 Python
python并发编程多进程 模拟抢票实现过程
2019/08/20 Python
python元组和字典的内建函数实例详解
2019/10/22 Python
python numpy数组中的复制知识解析
2020/02/03 Python
在pycharm中创建django项目的示例代码
2020/05/28 Python
HTML5混合开发二维码扫描以及调用本地摄像头
2017/12/27 HTML / CSS
Peter Alexander新西兰站:澳大利亚领先的睡衣设计师品牌
2016/12/10 全球购物
采购助理岗位职责
2014/02/16 职场文书
行政部经理助理岗位职责
2014/06/15 职场文书
老公写给老婆的检讨书
2015/05/06 职场文书
学生检讨书怎么写
2015/05/07 职场文书
html5调用摄像头实例代码
2021/06/28 HTML / CSS
Pycharm远程调试和MySQL数据库授权问题
2022/03/18 MySQL
使用vuex-persistedstate本地存储vuex
2022/04/29 Vue.js
MySQL中EXPLAIN语句及用法
2022/05/20 MySQL