当前位置: 代码迷 >> JavaScript >> 又一正则表达式有关问题,求高手相助
  详细解决方案

又一正则表达式有关问题,求高手相助

热度:208   发布时间:2012-03-03 15:33:04.0
又一正则表达式问题,求高手相助
如下,把[原字符串]替换变成[目标结果]

====   原字符串   ========================================================
....
<?xml:namespace   prefix   =   o   ns   =   "urn:schemas-microsoft-com:office:office "   /> <o:lock   aspectratio= "t "   v:ext= "edit "> </o:lock> </v:shapetype> <v:shape   id=_x0000_i1025   style= "WIDTH:   464.25pt;   HEIGHT:   55.5pt "   type   =   "#_x0000_t75 "   coordsize   =   "21600,21600 "> <v:imagedata   o:title= "aa "   src   =   "file:///C:\DOCUME~1\陈金发\LOCALS~1\Temp\msohtml1\01\clip_image001.png "> </v:imagedata> </v:shape>
...

====   目标结果   ========================================================
....
<img   src   =   "file:///C:\DOCUME~1\陈金发\LOCALS~1\Temp\msohtml1\01\clip_image001.png "   />
...


怎么写?



------解决方案--------------------
<script language=javascript>
var str= ' <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office " /> <o:lock aspectratio= "t " v:ext= "edit "> </o:lock> </v:shapetype> <v:shape id=_x0000_i1025 style= "WIDTH: 464.25pt; HEIGHT: 55.5pt " type = "#_x0000_t75 " coordsize = "21600,21600 "> <v:imagedata o:title= "aa " src = "file:///C:\DOCUME~1\陈金发\LOCALS~1\Temp\msohtml1\01\clip_image001.png "> </v:imagedata> </v:shape> '
re=/(src\s*=\s*\ "[^ "]+\ ")/i
re.test(str)
str= " <img "+RegExp.$1+ "/> "
alert(str)
</script>
------解决方案--------------------
<script >
str= ' <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office " /> <o:lock aspectratio= "t " v:ext= "edit "> </o:lock> </v:shapetype> <v:shape id=_x0000_i1025 style= "WIDTH: 464.25pt; HEIGHT: 55.5pt " type = "#_x0000_t75 " coordsize = "21600,21600 "> <v:imagedata o:title= "aa " src = "file:///C:\DOCUME~1\陈金发\LOCALS~1\Temp\msohtml1\01\clip_image001.png "> </v:imagedata> </v:shape> '
var re=/(src \= \ ".[^\ "]+\ ")/gi;
re.test(str);
str= ' <img '+RegExp.$1+ '> ';
alert(str);
</script>

------解决方案--------------------
前后不为空,从什么地方开始要保留?下面是只把 <v:imagedata 替换掉的正则
<script language=javascript>
var str= ' <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office " /> <o:lock aspectratio= "t " v:ext= "edit "> </o:lock> </v:shapetype> <v:shape id=_x0000_i1025 style= "WIDTH: 464.25pt; HEIGHT: 55.5pt " type = "#_x0000_t75 " coordsize = "21600,21600 "> <v:imagedata o:title= "aa " src = "file:///C:\DOCUME~1\陈金发\LOCALS~1\Temp\msohtml1\01\clip_image001.png "> </v:imagedata> </v:shape> '
re=/ <v:imagedata(.+?)(src\s*=\s*\ "[^ "]+\ ")(.+?) <\/v:imagedata> /i
re.test(str)
str=str.replace(re, " <img "+RegExp.$2+ "/> ")
alert(str)
</script>

------解决方案--------------------
<script language=javascript>