因为Javascript的match函数不能匹配小括号内捕获组的数据,要用regex.exec(s)的exec函数才能匹配小括号内捕获组的数据,但是它只能匹配一次,需要用while循环来不断匹配,直到匹配不上为null才停止,具体的Javascript程序如下(注意正则表达式我给你做了小改动)
<script type=text/javascript>var s='/zjh/53/ed082524-a3dc-4264-8d3a-10825a038750?xxf=1'
var regex=/\/?([^\/\?]+)/g
var result
while((result=regex.exec(s))!=null){
alert(result[1])
}
</script>
运行结果
zjh
53
ed082524-a3dc-4264-8d3a-10825a038750
xxf=1
加括号后代表立即执行这个方法,不加括号代表这个方法不是立即执行,需要等待某个时机,如下:不带括号的调用function,函数体对象为参数
带括号的调用function(),立即执行函数后返回的值为参数