文章中对某些词加链接,例如对“百度”关键词:
[i]
你好,欢迎加入百度!
[/i]
我在jsp后台对该内容字段直接replace替换:
[i]
你好,欢迎加入百度!
[/i]
但是,现在遇到一个问题,如果出现如下情况:
[i]
你好,欢迎加入百度!
[/i]
就连img中alt内容都替换掉了:
[i]
百度">你好,欢迎加入百度!
[/i]
这样前台页面就出错了,该如何实现只替换普通内容的,alt中的内容不替换,求教高手们,谢谢!
[code="java"]
String text = "
你好,欢迎加入百度!
";
String demo = "百度";
String outText = "";
String replaceText = "
百度";
if(!text.contains(demo)){
outText = text;
}else{
do{
int demoIndex = text.indexOf(demo);
String leftText = text.substring(0, demoIndex);
String rightText = text.substring(demoIndex+demo.length());
int ltIndex = rightText.indexOf("<");
int gtIndex = rightText.indexOf(">");
if(ltIndex <= gtIndex){
outText += (leftText+replaceText);
}else{
outText += (leftText+demo);
}
if(!rightText.contains(demo)){
outText += rightText;
break;
}
text = rightText;
}while(text.contains(demo));
}
[/code]
输出的outText就是你想要的结果,我这段代码主要是处理需要替换的字符串不应出现在尖括号对里,有一点需要注意的就是非html标签含义的‘<’‘>’可能会对程序输出产生影响。
替换“百度!”为“百度!”