首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

!實在搞 不懂 js 中exec和 math函數

2012-03-14 
求助 !!實在搞 不懂 js 中exec和 math函數JScript codefunction match(){var renew RegExp((go\s*)+,g

求助 !!實在搞 不懂 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次

热点排行