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 Keycode对照表
Oct 24 Javascript
基本jquery的控制tabs打开的数量的代码
Oct 17 Javascript
jQuery拖拽div实现思路
Feb 19 Javascript
JavaScript Math.floor方法(对数值向下取整)
Jan 09 Javascript
jquery简单实现带渐显效果的选项卡菜单代码
Sep 01 Javascript
JavaScript获取页面中超链接数量的方法
Nov 09 Javascript
JavaScript 节流函数 Throttle 详解
Jul 04 Javascript
微信小程序 图片加载(本地,网路)实例详解
Mar 10 Javascript
Bootstrap table学习笔记(2) 前后端分页模糊查询
May 18 Javascript
新手简单了解vue
May 29 Javascript
layer提示框添加多个按钮选择的实例
Sep 12 Javascript
使用webpack/gulp构建TypeScript项目的方法示例
Dec 18 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
用Apache反向代理设置对外的WWW和文件服务器
2006/10/09 PHP
Linux下CoreSeek及PHP扩展模块的安装
2012/09/23 PHP
php页面跳转代码 输入网址跳转到你定义的页面
2013/03/28 PHP
下拉列表多级联动dropDownList示例代码
2013/06/27 PHP
php运行时动态创建函数的方法
2015/03/16 PHP
PHP+Apache环境中如何隐藏Apache版本
2017/11/24 PHP
Jquery ThickBox插件使用心得(不建议使用)
2010/09/08 Javascript
来自国外的30个基于jquery的Web下拉菜单
2012/06/22 Javascript
JavaScript常用基础知识强化学习
2015/12/09 Javascript
深入学习jQuery中的data()
2016/12/22 Javascript
JavaScript实现自定义媒体播放器方法介绍
2017/01/03 Javascript
angular+ionic 的app上拉加载更新数据实现方法
2017/01/16 Javascript
ES6中class类用法实例浅析
2017/04/06 Javascript
JS实现数组去重方法总结(六种方法)
2017/07/14 Javascript
Angular通过angular-cli来搭建web前端项目的方法
2017/07/27 Javascript
Vue自定义事件(详解)
2017/08/19 Javascript
Javascript实现时间倒计时功能
2018/11/17 Javascript
js控制随机数生成概率代码实例
2019/03/21 Javascript
如何基于viewport vm适配移动端页面
2020/11/13 Javascript
SpringBoot在yml配置文件中配置druid的操作
2020/11/16 Javascript
Python列表append和+的区别浅析
2015/02/02 Python
浅析Python数据处理
2018/05/02 Python
python 除法保留两位小数点的方法
2018/07/16 Python
python使用suds调用webservice接口的方法
2019/01/03 Python
Django模板获取field的verbose_name实例
2020/05/19 Python
html5组织内容_动力节点Java学院整理
2017/07/10 HTML / CSS
VSCode 自定义html5模板的实现
2019/12/05 HTML / CSS
YOINS官网:时尚女装网上购物
2017/03/17 全球购物
项目经理岗位职责
2013/11/11 职场文书
2014年党的群众路线活动个人整改措施
2014/10/28 职场文书
承诺函格式模板
2015/01/21 职场文书
2015年世界无烟日活动总结
2015/02/10 职场文书
2016大学生求职自荐信范文
2016/01/28 职场文书
2019关于实习生工作安排及待遇的管理方案!
2019/07/16 职场文书
Python数据分析入门之教你怎么搭建环境
2021/05/13 Python
Redis安装使用RedisJSON模块的方法
2022/03/23 Redis