求助 !!在搞 不懂 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也是直执行第一次找到的
[解决办法]
[解决办法]
自己 可以 写着 试一试
参考: 征服Ajax - Web20开发技术详解
[解决办法]
当然是 这个结果了。
\s 代表 空格 , * 代表 0 个或多个 。
go\s* 代表 go 后面至少有一个空格
"let's goo goo go!"; 匹配的 就只有 go go go 了.
3 个数组 。
[解决办法]
go\s* 代表 go 后面至少有一个空格
---------------------------------
是有0到多个 重复1到n次