日期:2014-05-16  浏览次数:20370 次

正则,提取<# #>标签中间的内容,在线等
我要提取 <#abc#>   中间的内容,可能匹配多个。


具体就是   str=   ' <#aaa#>   123   <#bbb#>   456   <#ccc#>   789 '
我有一个数组保存aaa-efg     bbb-eff   ccc-eaa

我希望得到str= ' <#efg#>   123   <#eff#>   456   <#eaa#>   789 '

      var   r   =   str.match(/ <#\w*#> /ig);      
      for(i=0;i <r.length;i++){
      ...   //找到abc,根据abc去找   找到一个efg
      ...   //将 <#abc#>   替换成   efg
      }


------解决方案--------------------
<script language=javascript>
str= ' <#aaa#> 123 <#bbb#> 456 <#ccc#> 789 '
var temp=new Array()
temp[ 'aaa ']= 'efg '
temp[ 'bbb ']= 'eff '
temp[ 'ccc ']= 'eaa '
str=str.replace(/ <#(.+?)#> /g,function(a,b){return " <# "+temp[b]+ "#> "})
alert(str)
</script>
------解决方案--------------------
var str1= ' <#aaa#> 123 <#bbb#> 456 <#ccc#> 789 '
var regaa=/ <#(.*?)#> /g
var cc=str1.match(regaa)
alert(cc)
for(var i=0;i <cc.length;i++){
cc[i].match(regaa)
alert(RegExp.$1)
}