读书人

!在搞 不懂 js 中exec和 math函

发布时间: 2012-03-14 12:01:12 作者: rapoo

求助 !!在搞 不懂 js 中exec和 math函

JScript code
function match()   {      var re=new RegExp("(go\s*)+","g");        var src="let's go go go!";      var arr=src.match(re)            alert(arr);   }它得果是 go,go,gofunction match()   {      var re=new RegExp("(go\s*)+","g");        var src="let's go go go!";      var arr=re.exec(src);            alert(arr);   }它得果是 go,gomath 和exec果什不一阿?function match()   {      var re=new RegExp("(go\s*)+","g");        var src="let's goo goo go!";      var arr=src.math(re);            alert(arr);   } 果 什是 go,go,gofunction match()   {      //var re=new RegExp("(go\s*)+","g");       var re=/(go\s*)+/g      var src="let's go go go!";      var arr=src.math(re);            alert(arr);   }果是 go go go 是什?function match()   {      //var re=new RegExp("(go\s*)+","g");       var re=/(go\s*)+/g      var src="let's go go go!";      var arr=re.exec(re);            alert(arr);   }果 是 go go go,go是什?


[解决办法]
查一下手册就明白了.

match 是 String 的方法.

exec 是 ReExp 对象的方法.

match 只返回匹配的第一项(找到的)

exec 返回匹配的部分及子匹配项...

所以 match 只返回了 go go go 即串中匹配的内容.


exec 返回了一个 array

array[0] 同 match 一样结果.
而 array[1]... 则是 正则表达式中的子匹配项...
[解决办法]
String的replace也是直执行第一次找到的
[解决办法]
探讨
查一下手册就明白了.

match 是 String 的方法.

exec 是 ReExp 对象的方法.

match 只返回匹配的第一项(找到的)

exec 返回匹配的部分及子匹配项...

所以 match 只返回了 go go go 即串中匹配的内容.


exec 返回了一个 array

array[0] 同 match 一样结果.
而 array[1]... 则是 正则表达式中的子匹配项...

[解决办法]
自己 可以 写着 试一试

参考: 征服Ajax - Web20开发技术详解
[解决办法]
当然是 这个结果了。



\s 代表 空格 , * 代表 0 个或多个 。

go\s* 代表 go 后面至少有一个空格

"let's goo goo go!"; 匹配的 就只有 go go go 了.

3 个数组 。


[解决办法]
go\s* 代表 go 后面至少有一个空格
---------------------------------
是有0到多个 重复1到n次

读书人网 >C#

热点推荐