package cn.newgxu.bbs.common.filter.ubb; import java.util.regex.Matcher; import java.util.regex.Pattern; import org.apache.commons.lang.StringUtils; import cn.newgxu.bbs.common.filter.AbstractBaseFilter; import cn.newgxu.bbs.common.filter.Filter; /** * * @author polly * @since 4.0.0 * @version $Revision 1.1$ */ public class IMGFilter extends AbstractBaseFilter { private static final String IMG_PATTERN_STRING = "(\\[img\\])(.[^\\[]*)(\\[\\/img\\])"; private static final String IMG_APPEND_1 = "<br><a href=\""; private static final String IMG_APPEND_2 = "\" target=\"_blank\"><img src=\""; private static final String IMG_APPEND_3 = "\" border=0 alt=\"点击看大图\" " + "onload=\"javascript:if (this.width>600) this.width=" + "600;\" /></a><br>"; public IMGFilter(Filter filter) { super(filter); } @Override protected String convert(String str) { Pattern pattern = Pattern.compile(IMG_PATTERN_STRING, 2); Matcher matcher = pattern.matcher(str); StringBuffer stringbuffer = new StringBuffer(); for (boolean flag = matcher.find(); flag; flag = matcher.find()) { matcher.appendReplacement(stringbuffer, IMG_APPEND_1 + StringUtils.replace(matcher.group(2), ".yws", " ") + IMG_APPEND_2 + matcher.group(2) + IMG_APPEND_3); } matcher.appendTail(stringbuffer); return stringbuffer.toString(); } }