js正则匹配()小括号不生效

JavaScript017

js正则匹配()小括号不生效,第1张

因为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]/