js如何匹配中括号并且改变样式中括号里面的样式

JavaScript014

js如何匹配中括号并且改变样式中括号里面的样式,第1张

多个中括号的,也是可以的。

<html>

<head>

</head>

<body>

<div id="textshow"></div>

<script type="text/javascript">

//var str = '你的名字是:[abc]哦哦哦嘤[abc]嘤嘤'

var str = '你的名字是:[abc]哦哦哦嘤嘤嘤'

reg = new RegExp('\\[(.+?)\\]',"g")

ss =  str .replace(reg,'<span style="color:red">$1</span>')

document.getElementById("textshow").innerHTML=ss

</script>

</body>

</html>

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