js正则表达式中的g到底是什么意思

JavaScript011

js正则表达式中的g到底是什么意思,第1张

g是global的缩写啊!

就是匹配全部可匹配结果,

如果你不带g,在正则过程中,字符串是从左至右匹配的,如果匹配成功就不再继续向右匹配了,如果你带g,它会重头到尾的把正确匹配的字符串挑选出来

例如:

var str = 'aaaaaaaa'

var reg1 = /a/

var reg2 = /a/g

str.match(reg1)// 结果为:["a", index: 0, input: "aaaaaaaa"]

str.match(reg2)// 结果为:["a", "a", "a", "a", "a", "a", "a", "a"]

/[\r]/g在js中是正则表达式对象,在两个“/”之间的部分是表达式的主体,表示要匹配的字符串;“g”表示在整个字符串中搜索。所以这段代码中要匹配的字符串是“[\r]”所代表的字符串,其中“[]”表示字符的可选范围。

//g是全局匹配

//中间的内容表示:匹配以=开关,后面是0或多个空格,然后是双引号括起来的任意字符,比如:

= "any symble"

\s:匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。

\:将下一个字符标记为一个特殊字符、或一个原义字符、或一个 向后引用、或一个八进制转义符。例如,'n' 匹配字符 "n"。'\n' 匹配一个换行符。序列 '\\' 匹配 "\" 而 "\(" 则匹配 "("。

匹配除 "\n" 之外的任何单个字符。要匹配包括 '\n' 在内的任何字符,请使用象 '[.\n]' 的模式。

扩展资料:

Javascript被归类为直译语言,因为主流的引擎都是每次运行时加载代码并解译。V8是将所有代码解译后再开始运行,其他引擎则是逐行解译(SpiderMonkey会将解译过的指令暂存,以提高性能,称为实时编译),但由于V8的核心部分多数用Javascript撰写(而SpiderMonkey是用C++),因此在不同的测试上,两者性能互有优劣。

与其相对应的是编译语言,例如C语言,以编译语言编写的程序在运行之前,必须经过编译,将代码编译为机器码,再加以运行。

参考资料来源:百度百科-javascript