3个和正则有关(字符串处理)的小问题
1对字符串做一些处理,比如我想给某些词加上链接,是这样写的,
content=content.replaceAll("结婚", "<a href='http://www.xxx.com'>结婚</a>");
现在我碰到了这样的问题,就是某个图片的alt属性中有结婚这个词,结果通过这种变换以后,就不能正常显示图片了。
<img src="xxx.gif" alt="结婚新娘图">
变成了<img src="xxx.gif" alt="<a href='http://wwww.xxx.com'>结婚</a>新娘图">
这显然是不对的,如何在jsp里面能达到不改变图片,而只是正文中的变换
2.我想同时给结婚 和 结婚用品做关键词加链接处理,要求就是如果碰到 结婚用品4个子连在一起,就把这4个字作为整体来加<a...>结婚用品</a>,否则才是<a...>结婚</a>,但通过上面的处理,会变成<a...>结婚</a>用品,或者<a...><a...>结婚</a>用品</a>,而不是我想要的结果,谢谢
[解决办法]
写了一个通用的,不过还是不能在正文里加图片
- HTML code
<script>var keywords=[];//要替换的部分var replaces=[];//替换成什么var signs=[];//特定标记,不用管它keywords[0]=/结婚用品/g;keywords[1]=/结婚/g;replaces[0]="<a href='http://www.sina.com.cn'>结婚用品</a>";replaces[1]="<a href='http://www.163.com'>结婚</a>";function convert(){ var contentValue=content.innerHTML; //设置signs,并替换为signs for(var i=0;(e=keywords[i]);i++){ signs[i]="thePartWhichWillBeReplace"+i; contentValue=contentValue.replace(keywords[i],signs[i]); } for(var i=0;(e=signs[i]);i++){ while(contentValue.indexOf(signs[i])>=0){ contentValue=contentValue.replace(signs[i],replaces[i]); } } content.innerHTML=contentValue;}</script>
[解决办法]
- JScript code
<script type="text/javascript">var a='aaabaa<img src="xxx.gif" alt="aaabaa">aaabaa<img src="xxx.gif" alt="aaabaa">aaabaa<Span>ssss<Span>ssss</Span>aaabaa</Span>'alert(a.replace(/(^|>)([^>]*?)aaab([^>]*?)(^|<)/gi,"$1$2mm$3$4"))</script>