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 相关文章推荐
键盘控制事件应用教程大全
Nov 24 Javascript
Javascript 类、命名空间、代码组织代码
Jul 31 Javascript
Javascript基础教程之数组 array
Jan 18 Javascript
在Node.js应用中读写Redis数据库的简单方法
Jun 30 Javascript
超赞的动手创建JavaScript框架的详细教程
Jun 30 Javascript
node.js使用cluster实现多进程
Mar 17 Javascript
实例讲解JavaScript中call、apply、bind方法的异同
Sep 13 Javascript
网站发布后Bootstrap框架引用woff字体无法正常显示的解决方法
Nov 24 Javascript
Bootstrap Table从零开始
Jun 30 Javascript
微信小程序getPhoneNumber获取用户手机号
Sep 29 Javascript
vue请求数据的三种方式
Mar 04 Javascript
Taro小程序自定义顶部导航栏功能的实现
Dec 17 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
使用sockets:从新闻组中获取文章(二)
2006/10/09 PHP
JQuery制作的放大效果的popup对话框(未添加任何jquery plugin)分享
2013/04/28 Javascript
解析Javascript中中括号“[]”的多义性
2013/12/03 Javascript
jquery使用jquery.zclip插件复制对象的实例教程
2013/12/04 Javascript
js post提交调用方法
2014/02/12 Javascript
js判断字符长度及中英文数字等
2014/03/19 Javascript
jquery实现个人中心导航菜单效果和美观都非常不错
2014/09/02 Javascript
JavaScript检查弹出窗口是否被阻拦的方法技巧
2015/03/13 Javascript
js实现div层缓慢收缩与展开的方法
2015/05/11 Javascript
喜大普奔!jQuery发布 3.0 最终版
2016/06/12 Javascript
jQuery UI结合Ajax创建可定制的Web界面
2016/06/22 Javascript
jQuery常用选择器详解
2017/07/17 jQuery
JavaScript函数绑定用法实例分析
2017/11/14 Javascript
JavaScript函数的特性与应用实践深入详解
2018/12/30 Javascript
记录一次完整的react hooks实践
2019/03/11 Javascript
解决mui框架中switch开关通过js控制开或者关状态时小圆点不动的问题
2019/09/03 Javascript
vue搜索页开发实例代码详解(热门搜索,历史搜索,淘宝接口演示)
2020/04/11 Javascript
Python下的Mysql模块MySQLdb安装详解
2014/04/09 Python
详解python中的Turtle函数库
2018/11/19 Python
我用Python抓取了7000 多本电子书案例详解
2019/03/25 Python
Django网络框架之HelloDjango项目创建教程
2019/06/06 Python
python字典的常用方法总结
2019/07/31 Python
使用python脚本自动创建pip.ini配置文件代码实例
2019/09/20 Python
python定间隔取点(np.linspace)的实现
2019/11/27 Python
Python实现word2Vec model过程解析
2019/12/16 Python
Django 404、500页面全局配置知识点详解
2020/03/10 Python
python 生成器需注意的小问题
2020/09/29 Python
美国摩托车头盔、零件、齿轮及配件商店:Cycle Gear
2019/06/12 全球购物
模范教师事迹材料
2014/02/10 职场文书
领导班子党的群众路线对照检查材料
2014/09/25 职场文书
党员检讨书范文
2014/12/27 职场文书
2015年后备干部工作总结
2015/05/15 职场文书
2015年社区党建工作汇报材料
2015/06/25 职场文书
2016年优秀教师先进事迹材料
2016/02/26 职场文书
Pytest中conftest.py的用法
2021/06/27 Python
mysql的数据压缩性能对比详情
2021/11/07 MySQL