当前位置: 首页 > 编程笔记 >

JS正则表达式修饰符中multiline(/m)用法分析

韦德厚
2023-03-14
本文向大家介绍JS正则表达式修饰符中multiline(/m)用法分析,包括了JS正则表达式修饰符中multiline(/m)用法分析的使用技巧和注意事项,需要的朋友参考一下

本文实例分析了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。

PS:这里再为大家提供2款非常方便的正则表达式工具供大家参考使用:

JavaScript正则表达式在线测试工具:
http://tools.jb51.net/regex/javascript

正则表达式在线生成工具:
http://tools.jb51.net/regex/create_reg

更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript正则表达式技巧大全》、《JavaScript替换操作技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》、《JavaScript中json操作技巧总结》、《JavaScript错误与调试技巧总结》及《JavaScript数学运算用法总结》

希望本文所述对大家JavaScript程序设计有所帮助。

 类似资料:
  • 本文向大家介绍JS正则表达式修饰符global(/g)用法分析,包括了JS正则表达式修饰符global(/g)用法分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JS正则表达式修饰符global(/g)用法。分享给大家供大家参考,具体如下: /g修饰符代表全局匹配,查找所有匹配而非在找到第一个匹配后停止。先看一段经典代码: 可以看到:当使用/g模式的时候,多次执行RegExp.test

  • 主要内容:实例,实例,实例,实例标记也称为修饰符,正则表达式的标记用于指定额外的匹配策略。 标记不写在正则表达式里,标记位于表达式之外,格式如下: 下表列出了正则表达式常用的修饰符: 修饰符 含义 描述 i ignore - 不区分大小写 将匹配设置为不区分大小写,搜索时不区分大小写: A 和 a 没有区别。 g global - 全局匹配 查找所有的匹配项。 m multi line - 多行匹配 使边界字符 ^ 和 $ 匹配

  • 但我对修饰语s和m感到困惑。谁能用代码示例来解释s和m之间的区别,说明它是如何不同的?我试着在网上搜索,它只在http://perldoc.perl.org/perlre.html#modifiers链接中给出了解释。在stackoverflow中,我甚至看到有人将s和m一起使用。s不是M的反义词吗? 我无法使用“使用M”匹配多行。

  • 问题内容: 我正在使用orient-db数据库,但是正则表达式模式匹配存在问题。我确实需要在请求中包含不区分大小写的修饰符,但是它不按预期工作。 询问: 以小写形式返回预期的匹配项。 每当我尝试添加修饰符时,即在分隔符之外 我得到一个空的收藏。实际上,只要存在分隔符,查询就会返回一个空集合。 如果没有办法附加修饰符,我可能可以将每个“ alpha”字符替换为方括号中的表达式,即 但是我对这种解决方

  • 本文向大家介绍浅谈PHP正则表达式中修饰符/i, /is, /s, /isU,包括了浅谈PHP正则表达式中修饰符/i, /is, /s, /isU的使用技巧和注意事项,需要的朋友参考一下 在学习PHP正则表达式修饰符之前先来理解下贪婪模式,前面在元字符中提到过"?"还有一个重要的作用,即"贪婪模式",什么是"贪婪模式"呢? PHP正则表达式贪婪模式: 比如我们要匹配以字母"a"开头字母"b"结尾的

  • 本文向大家介绍JavaScript正则表达式之multiline属性的应用,包括了JavaScript正则表达式之multiline属性的应用的使用技巧和注意事项,需要的朋友参考一下  多行正则表达式是对象的只读布尔属性。它指定是否一个特定的正则表达式进行多行匹配,即,不管是否使用“m”属性创建。 语法 下面是参数的详细信息:     NA 返回值: 如果“m”修改被设置返回“TRUE”,否则返回