因为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
var str1 = "电视机(20)"var str2 = "数字电视(0)"
var str3 = "移动通讯(315)"
function formatStr(s){
var patrn=/[(]{1}[\d]+[)]{1}$/
if (patrn.test(s)){
return s.replace(patrn,"")
}
}
alert(formatStr(str1))
alert(formatStr(str2))
alert(formatStr(str3))
先定义正则表达式,然后用正则表达式比较,看是否符合要求,如果返回true,则表示匹配,否则表示不匹配,示例代码如下:
//定义要判断的字符串var str = "afsfd(bcd)asfasfsad(def)asdfsadf"
//定义正则表达式对象,\表示转义字符,原点表示任意字符,+表示出现次数至少1次,igm表示忽略大小写,且全局匹配
pattern =new RegExp("\\((.| )+?\\)","igm")
//取出匹配正则表达式的内容
alert(str.match(pattern))
就可以取出小括号内的内容了