g:表示全局(global)模式,即模式将被应用于所有字符串,而非在发现第一个匹配项时立即停止。
i:表示不区分大小写(case-insensitive)模式,即在确定匹配项时忽略模式与字符串的大小写。
m:表示多行(multiline)模式,即在到达一行文本末尾时还会继续查找下一行中是否存在与模式匹配的项。
实例:
var pattern = /^a.+b$/; undefined "adfasdfasdfasdfasdf".match(pattern) null "adfasdfasdfasdfasdb".match(pattern) ["adfasdfasdfasdfasdb"] "adfasdfasdfasdfasdb\r\naasdfasdfasdf".match(pattern) null "adfasdfasdfasdfasdb\r\naasdfasdfasdfb".match(pattern) null var pattern = /^a.+b$/m; undefined "adfasdfasdfasdfasdb\r\naasdfasdfasdfb".match(pattern) ["adfasdfasdfasdfasdb"] var pattern = /^a.+b$/g; undefined "adfasdfasdfasdfasdb\r\naasdfasdfasdfb".match(pattern) null var pattern = /^a.+b$/mg; undefined "adfasdfasdfasdfasdb\r\naasdfasdfasdfb".match(pattern) ["adfasdfasdfasdfasdb", "aasdfasdfasdfb"]
从这几个实例不难看出:m是多行匹配,在配合^ $的正则表达式中,强制匹配每一行的开头结束
但对g作用又有点迷糊了,下面是g的实例:
var pattern = /^a.+b$/g; undefined "adfasdfasdfasdfasdb\r\naasdfasdfasdfb".match(pattern) null var pattern = /a.+b$/g; undefined "adfasdfasdfasdfasdb\r\naasdfasdfasdfb".match(pattern) ["aasdfasdfasdfb"] var pattern = /^a.+b/g; undefined "adfasdfasdfasdfasdb\r\naasdfasdfasdfb".match(pattern) ["adfasdfasdfasdfasdb"] var pattern = /a.+b/g; undefined "adfasdfasdfasdfasdb\r\naasdfasdfasdfb".match(pattern) ["adfasdfasdfasdfasdb", "aasdfasdfasdfb"]
附:
^:匹配一个输入或一行的开头,/^a/匹配"an A",而不匹配"An a"
$:匹配一个输入或一行的结尾,/a$/匹配"An a",而不匹配"an A"
对如下执行结果还是没太弄明白:
var pattern = /^a.+b$/g; undefined "adfasdfasdfasdfasdb\r\naasdfasdfasdfb".match(pattern) null
相关推荐
javascript正则表达式 中会遇到这种 \g \i的结尾
我们已经发现了,在正则表达式中所有的字母字符和数字都是按照字面意思与自身相匹配的.JavaScript的正则表达式还通过以反斜杠(\)开头的转义序列支持某些非 字母字符.例如,序列 "\n" 在字符串中匹配的是一个直接量换...
JavaScript正则表达式有3种修饰符/i、/m和/g。/i是我们最常用,也是最好理解的,代表正则表达式匹配的时候不区分大小写。 var regex = /abc/i; alert(regex.test("aBc"));//true /m代表多行模式multiline...
用正则表达式限制只能输入数字和英文:onkeyup="value=value.replace(/[\W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))" (/[^\u4E00-\u9FA5\w]/g,''...
• Javascript正则表达式在线测试工具 如果你不觉得正则表达式很难读写的话,要么你是一个天才,要么,你不是地球人。正则表达式的语法很令人头疼,即使对经常使用它的人来说也是如此。由于难于读写,容易出错,...
一,js正则标志/g,/i,/m说明 1,/g (globle)表示该表达式将用来在输入字符串中查找所有可能的匹配,全文查找出现的所有匹配字符,返回的结果可以是多个。如果不加/g最多只会匹配一个 2,/i (ignorCase)表示匹配的...
var reCat = new RegExp("cat", "gi"); //RegExp构造函数可以...元字符是表达式语法的一部分,在正则表达式中用到的所有元字符有:{ [ ( \ ^ $ | ) ] } ? * + – 如匹配一个问号:var reQMark = /\?/; 或 var reQMark
②正则表达式的模式(i/g/m); 2、声明正则表达式 ① 字面量声明: var reg = /表达式规则/表达式模式; eg:var reg = /white/g; ② 使用new关键字: var reg = new RegExp(“表达式规则”,”表达式模式”) ...
正则表达式标志 做一件简单的事情-从正则表达式获取标志。 对于克隆以及使用或生成从其他正则表达式创建的正则表达式的任何库很有用。 如果您需要“符合ES6规范的RegExp.prototype.flags填充程序,请查看中的 lib...
为了更好的描述模式,正则表达式提供了3个标识,分别是: g/i/m g: 全局匹配:在整个字符串中匹配,而不是在第一次匹配后之后停止 i: 忽略大小写匹配 m: 对多行字符串中的每一行,应用行首和行末的特殊字符(分别
JS正则表达式对象模式仅有如下三种: g (全文查找出现的所有 pattern) i (忽略大小写) m (多行查找) 即没有单行匹配模式,Singleline(单行模式):更改.的含义,使它与每一个字符匹配(包括换行符\n)。 如...
正则表达式,又称正规表示法、常规表示法。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。...i表示不区分大小写,g表示全局匹配,即匹配所有的符合条件的字符串,m表示
JS中正则对象修饰符可选值为:”i” “g” “m”,即忽略大小写 进行全局匹配 多行模式 JS中正则表达式支持的元字符: 1:枚举方括号表达式,范围方括号表达式,枚举取反方括号表达式,范围取反方括号表达式 2:. \w...
/hello/: 两个反斜杠是正则表达式的字面量表示法 两个测试方法 test const test = new RegExp('hello world', 'ig'); console.log(test.test('hello world')); // true exec 返回的是数组,有就返回数组的值,...
以前用js很少用到js的正则表达式,即使用到了,也是诸如邮件名称之类的判断,网上代码很多,很少有研究,拿来即用。 最近开发遇到一些需要使用正则表达式,顺便研究一下 正则表达式对象有两个定义方式:: 1、第一种...
它使用JavaScript正则表达式(RegExp)识别URL并执行搜索和替换操作。 重要提示:由于Chrome仅提供异步消息传递,因此该扩展程序仍在运行时,网页上的脚本可能已经在执行! 换句话说,使用此扩展名修改JavaScript...
在讲replace的高级应用之前,我们先简单梳理一下JS正则中的几个重要的知识点,以帮助你对基础知识的回顾,然后再讲解JS正则表达式在replace中的使用,以及常见的几个经典案例。 一、正则表达式的创建 JS正则的创建...
有关正则表达式介绍,请阅读JavaScript指南中的正则表达式章节。 语法 文字和构造符号是可能的: /pattern/flags new RegExp(pattern [, flags]) 参数 pattern 正则表达式的文本 flags 如果指定,标志可以具有以下值...
此外,JavaScript这种客户端的脚本语言也提供了对正则表达式的支持,现在正则表达式已经成为了一个通用的概念和工具,被各类技术人员所广泛使用。 在某个Linux网站上面有这样的话:"如果你问一下Linux爱好者最喜欢...