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 写类方式之五
Jul 05 Javascript
juqery 学习之三 选择器 可见性 元素属性
Nov 25 Javascript
jquery 插件学习(四)
Aug 06 Javascript
你未必知道的JavaScript和CSS交互的5种方法
Apr 02 Javascript
Jquery Post处理后不进入回调的原因及解决方法
Jul 15 Javascript
了不起的node.js读书笔记之node的学习总结
Dec 22 Javascript
Javascript URI 解析介绍
Mar 15 Javascript
jQuery实现Tab选项卡切换效果简单演示
Nov 23 Javascript
vue移动端UI框架实现QQ侧边菜单组件
Mar 09 Javascript
实例讲解Vue.js中router传参
Apr 22 Javascript
详解vuex commit保存数据技巧
Dec 25 Javascript
layer弹窗在键盘按回车将反复刷新的实现方法
Sep 25 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速度全攻略
2006/10/09 PHP
一个颜色轮换的简单例子
2006/10/09 PHP
采用thinkphp自带方法生成静态html文件详解
2014/06/13 PHP
几个实用的PHP内置函数使用指南
2014/11/27 PHP
MacOS 安装 PHP的图片裁剪扩展Tclip
2015/03/25 PHP
postfixadmin忘记密码后的修改密码方法详解
2016/07/20 PHP
PHP实现移除数组中为空或为某值元素的方法
2017/01/07 PHP
php框架CodeIgniter主从数据库配置方法分析
2018/05/25 PHP
php实现文章评论系统
2019/02/18 PHP
PHP模型Model类封装数据库操作示例
2019/03/14 PHP
通过实例解析PHP数据类型转换方法
2020/07/11 PHP
解决 FireFox 下[使用event很麻烦] 的问题.
2006/08/22 Javascript
使用jquery选择器如何获取父级元素、同级元素、子元素
2014/05/14 Javascript
使用GruntJS构建Web程序之合并压缩篇
2014/06/06 Javascript
JavaScript Split()方法
2015/12/18 Javascript
JavaScript+canvas实现七色板效果实例
2016/02/18 Javascript
jquery实现企业定位式导航效果
2018/01/01 jQuery
基于vue循环列表时点击跳转页面的方法
2018/08/31 Javascript
使用vue2实现带地区编号和名称的省市县三级联动效果
2018/11/05 Javascript
webpack4.x下babel的安装、配置及使用详解
2019/03/07 Javascript
解决await在forEach中不起作用的问题
2021/02/25 Javascript
[57:53]Secret vs Pain 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
Python中实现常量(Const)功能
2015/01/28 Python
Python的matplotlib绘图如何修改背景颜色的实现
2019/07/16 Python
Python之虚拟环境virtualenv,pipreqs生成项目依赖第三方包的方法
2019/07/23 Python
Python中的list与tuple集合区别解析
2019/10/12 Python
Python中openpyxl实现vlookup函数的实例
2020/10/28 Python
利用python如何实现猫捉老鼠小游戏
2020/12/04 Python
详解Canvas实用库Fabric.js使用手册
2019/01/07 HTML / CSS
如何利用cmp命令比较文件
2013/09/23 面试题
学生个人求职自荐信格式
2013/09/23 职场文书
2014年园林绿化工作总结
2014/12/11 职场文书
离婚案件原告代理词
2015/05/23 职场文书
2016暑期校本培训心得体会
2016/01/08 职场文书
奖学金发言稿(范文)
2019/08/21 职场文书
python实现商品进销存管理系统
2022/05/30 Python