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 EasyUI API 中文文档 - NumberBox数字框
Oct 13 Javascript
下拉菜单点击实现连接跳转功能的js代码
May 19 Javascript
浅析jQuery1.8的几个小变化
Dec 10 Javascript
基于replaceChild制作简单的吞噬特效
Sep 21 Javascript
Angular 常用指令实例总结整理
Dec 13 Javascript
Angular 4.x 动态创建表单实例
Apr 25 Javascript
前端跨域的几种解决方式总结(推荐)
Aug 16 Javascript
微信小程序自定义tabBar组件开发详解
Sep 24 Javascript
es6基础学习之解构赋值
Dec 10 Javascript
Vue.js + Nuxt.js 项目中使用 Vee-validate 表单校验
Apr 22 Javascript
JavaScript直接调用函数与call调用的区别实例分析
May 22 Javascript
微前端qiankun改造日渐庞大的项目教程
Jun 21 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.ini安全配置检测工具pcc简单介绍
2015/07/02 PHP
ThinkPHP框架实现的邮箱激活功能示例
2018/06/15 PHP
Mootools 1.2教程 滚动条(Slider)
2009/09/15 Javascript
如何实现textarea里的不同文本显示不同颜色
2014/01/20 Javascript
基于javascript实现动态显示当前系统时间
2016/01/28 Javascript
input 禁止输入特殊字符的四种实现方式
2016/08/24 Javascript
完美解决手机网页中输入框被输入法遮挡的问题
2017/12/19 Javascript
Node实战之不同环境下配置文件使用教程
2018/01/02 Javascript
基于jQuery.i18n实现web前端的国际化
2018/05/04 jQuery
vue动态绑定组件子父组件多表单验证功能的实现代码
2018/05/14 Javascript
创建Vue项目以及引入Iview的方法示例
2018/12/03 Javascript
js实现无限瀑布流实例方法
2019/09/16 Javascript
vue-next/runtime-core 源码阅读指南详解
2019/10/25 Javascript
jquery实现简易验证插件封装
2020/09/13 jQuery
浅谈Python2获取中文文件名的编码问题
2018/01/09 Python
Windows下安装Django框架的方法简明教程
2018/03/28 Python
使用python语言,比较两个字符串是否相同的实例
2018/06/29 Python
python简单的三元一次方程求解实例
2020/04/02 Python
加拿大最大的书店:Indigo
2017/01/01 全球购物
英国儿童设计师服装和玩具购物网站:Zac & Lulu
2020/10/19 全球购物
写一个方法,输入一个文件名和一个字符串,统计这个字符串在这个文件中出现的次数
2016/04/13 面试题
土木工程专业自荐信
2013/10/04 职场文书
教育科学研究生自荐信
2013/10/09 职场文书
师范大学音乐表演专业求职信
2013/10/23 职场文书
师范毕业生自我鉴定
2014/01/15 职场文书
医药个人求职信范文
2014/01/29 职场文书
小学生新年寄语
2014/04/03 职场文书
关于教师节的广播稿
2014/09/10 职场文书
2014教师个人自我评价范文
2014/09/13 职场文书
师德师风剖析材料
2014/09/30 职场文书
检察院院长群众路线教育实践活动个人整改措施
2014/10/04 职场文书
单位工作证明
2014/10/07 职场文书
2014教师年度思想工作总结
2014/11/10 职场文书
2014年出纳工作总结与计划
2014/12/09 职场文书
关于社会实践的心得体会(2016最新版)
2016/01/25 职场文书
MySQL新手入门进阶语句汇总
2022/09/23 MySQL