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判断录入的日期是否合法
Jan 08 Javascript
利用javascript判断文件是否存在
Dec 31 Javascript
5种处理js跨域问题方法汇总
Dec 04 Javascript
JavaScript中实现继承的三种方式和实例
Jan 29 Javascript
javascript验证身份证号
Mar 03 Javascript
jQuery实现拖拽页面元素并将其保存到cookie的方法
Jun 12 Javascript
详解Javascript中的原型OOP
Oct 12 Javascript
利用JQuery实现datatables插件的增加和删除行功能
Jan 06 Javascript
js中el表达式的使用和非空判断方法
Mar 28 Javascript
JavaScript+H5实现微信摇一摇功能
May 23 Javascript
在 Angular-cli 中使用 simple-mock 实现前端开发 API Mock 接口数据模拟功能的方法
Nov 28 Javascript
仿ElementUI实现一个Form表单的实现代码
Apr 23 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多用户计数器代码
2007/03/11 PHP
php设计模式 DAO(数据访问对象模式)
2011/06/26 PHP
jquery trigger伪造a标签的click事件取代window.open方法
2014/06/23 Javascript
bootstrap监听滚动实现头部跟随滚动
2016/11/08 Javascript
详解angular element()方法使用
2017/04/08 Javascript
Centos6.8下Node.js安装教程
2017/05/12 Javascript
Express+Nodejs 下的登录拦截实现代码
2017/07/01 NodeJs
Vue引用第三方datepicker插件无法监听datepicker输入框的值的解决
2018/01/27 Javascript
Vue如何实现响应式系统
2018/07/11 Javascript
javascript浅层克隆、深度克隆对比及实例解析
2020/02/09 Javascript
vue3+typescript实现图片懒加载插件
2020/10/26 Javascript
详解React中共享组件逻辑的三种方式
2021/02/02 Javascript
天翼开放平台免费短信验证码接口使用实例
2013/12/18 Python
Python实现注册登录系统
2017/08/08 Python
解决Pycharm出现的部分快捷键无效问题
2018/10/22 Python
对pandas的算术运算和数据对齐实例详解
2018/12/22 Python
wxPython实现分隔窗口
2019/11/19 Python
40行Python代码实现天气预报和每日鸡汤推送功能
2020/02/27 Python
python中翻译功能translate模块实现方法
2020/12/17 Python
python 基于opencv实现图像增强
2020/12/23 Python
HTML5的新特性(1)
2016/03/03 HTML / CSS
KIKO美国官网:意大利的平价彩妆品牌
2017/05/16 全球购物
德国机车企业:FC-Moto
2017/10/27 全球购物
美国价格实惠的在线眼镜网站:Zeelool
2020/12/25 全球购物
院领导写的就业推荐信
2014/03/09 职场文书
扬尘污染防治方案
2014/06/15 职场文书
联片教研活动总结
2014/07/01 职场文书
小学课外阅读总结
2014/07/09 职场文书
安全月宣传标语
2014/10/07 职场文书
大学体育课感想
2015/08/10 职场文书
2019新员工试用期转正申请书3篇
2019/08/13 职场文书
oracle表分区的概念及操作
2021/04/24 Oracle
撤回我也能看到!教你用Python制作微信防撤回脚本
2021/06/11 Python
详解Go语言运用广度优先搜索走迷宫
2021/06/23 Python
基于Python实现流星雨效果的绘制
2022/03/18 Python
JDK8中String的intern()方法实例详细解读
2022/09/23 Java/Android