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代码
Dec 05 Javascript
js根据日期判断星座的示例代码
Jan 23 Javascript
JQuery 实现在同一页面锚点链接之间的平滑滚动
Oct 29 Javascript
javascript中if和switch,==和===详解
Jul 30 Javascript
JS滚动到指定位置导航栏固定顶部
Jul 03 Javascript
babel的使用及安装配置教程
Feb 22 Javascript
vue-awesome-swiper 基于vue实现h5滑动翻页效果【推荐】
Nov 08 Javascript
微信小程序开发实现消息推送
Nov 18 Javascript
JS数组中对象去重操作示例
Jun 04 Javascript
vuex中store存储store.commit和store.dispatch的用法
Jul 24 Javascript
Element Badge标记的使用方法
Jul 27 Javascript
关于element-ui表单中限制输入纯数字的解决方式
Sep 08 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程序员的技术瓶颈分析
2011/07/17 PHP
PHP中使用数组实现堆栈数据结构的代码
2012/02/05 PHP
PHP编程中的__clone()方法使用详解
2015/11/27 PHP
PHP实现的简单异常处理类示例
2017/05/04 PHP
PHP数组常用函数实例小结
2018/08/20 PHP
Laravel实现ORM带条件搜索分页
2019/10/24 PHP
PHP的imageTtfText()函数深入详解
2021/03/03 PHP
Ajax同步与异步传输的示例代码
2013/11/21 Javascript
Google官方支持的NodeJS访问API,提供后台登录授权
2014/07/29 NodeJs
jquery ajax请求方式与提示用户正在处理请稍等
2014/09/01 Javascript
轻松使用jQuery双向select控件Bootstrap Dual Listbox
2015/12/13 Javascript
第十章之巨幕页头缩略图与警告框组件
2016/04/25 Javascript
如何利用Promises编写更优雅的JavaScript代码
2016/05/17 Javascript
jQuery实现拖拽页面元素并将其保存到cookie的方法
2016/06/12 Javascript
深入浅析ES6 Class 中的 super 关键字
2017/10/20 Javascript
vue 简单自动补全的输入框的示例
2018/03/12 Javascript
Flutter 超实用简单菜单弹出框 PopupMenuButton功能
2019/08/06 Javascript
Vue实现点击显示不同图片的效果
2019/08/10 Javascript
js获取浏览器地址(获取第1个斜杠后的内容)
2019/09/03 Javascript
vue基本使用--refs获取组件或元素的实例
2019/11/07 Javascript
js实现轮播图特效
2020/05/28 Javascript
js实现简易ATM功能
2020/10/27 Javascript
Python中下划线的使用方法
2015/03/27 Python
使用Python制作获取网站目录的图形化程序
2015/05/04 Python
python实现用户登陆邮件通知的方法
2015/07/09 Python
python如何读写json数据
2018/03/21 Python
django 将model转换为字典的方法示例
2018/10/16 Python
通过canvas转换颜色为RGBA格式及性能问题的解决
2019/11/22 HTML / CSS
Zipadee-Zip襁褓过渡毯:Sleeping Baby
2018/12/30 全球购物
澳大利亚领先的女性运动服品牌:Lorna Jane
2020/06/19 全球购物
4s店活动策划方案
2014/08/25 职场文书
女儿满月酒致辞
2015/07/29 职场文书
员工聘用合同范本
2015/09/21 职场文书
python 模拟在天空中放风筝的示例代码
2021/04/21 Python
详解Laravel服务容器的优势
2021/05/29 PHP
Python多个MP4合成视频的实现方法
2021/07/16 Python