因为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
直接距离,方便看懂,中括号:[]1. /[abcd]/ 任意一个 /a|b|c|d/
/[a,b,c,d]/ a或者b或者c或者d或者逗号
/[a|b|c]/
2. /[a-z]/ 区间
/[a-c]/
/[0-9]/ \d
/[1-7]/
/[1-38]/ 1-3或者8
/a-z/
/[A-Z]/
3. /[^abc]/ 排除
/[^0-9]/
/[^a-z]/
/^[a-z]/ 必须以字母打开头东西
/^[^a]/