郵件連接替換

 

// 將href外站的連接換爲302跳轉
    public static String formatA(String src, String patternStr, String replace) {
        if (StringUtil.isBlank(src) || StringUtil.isBlank(patternStr) || StringUtil.isBlank(replace)) {
            return src;
        }
        
        // html的標籤屬性確定是以單引號或雙引號包含
        Pattern p = Pattern.compile(patternStr, Pattern.CASE_INSENSITIVE);
        Matcher m = p.matcher(src);
        while (m.find()) {
            String a = m.group();
            // 本站內部連接不處理
            /*if (a.contains("javaniu") || a.contains("zuidaima") || a.contains("javascript:void") || a.matches("href=['|\"]?\\/")) {
                continue;
            }*/
            String _url = m.group(2);
            String url = _url;

            try {
                url = URLEncoder.encode(_url, "utf-8");
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }
            url = String.format(replace, url);
            // 將target屬性替換爲"",以便全部外鏈都是_blank打開
            String targetReg = "target=['|\"].*?['|\"']";
            String prefix = m.group(1).replaceAll(targetReg, "");
            String suffix = m.group(3).replaceAll(targetReg, "");
            // 整段匹配不會出現錯誤
            String _a = "<a" + prefix + " href='" + url + "'" + suffix + " target='_blank'>";
            src = src.replace(a, _a);
        }
        
        return src;
    }


    // 將添加的連接去除
    public static String formatABackUp(String src, String patternStr) {
        if (StringUtil.isBlank(src) || StringUtil.isBlank(patternStr)) {
            return src;
        }

        // html的標籤屬性確定是以單引號或雙引號包含
        Pattern p = Pattern.compile(patternStr, Pattern.CASE_INSENSITIVE);
        Matcher m = p.matcher(src);
        while (m.find()) {
            String a = m.group();
            // 本站內部連接不處理
            /*if (a.contains("javaniu") || a.contains("zuidaima") || a.contains("javascript:void") || a.matches("href=['|\"]?\\/")) {
                continue;
            }*/
            String _url = m.group(2);
            String url = _url;

            try {
                url = URLDecoder.decode(_url, "utf-8");
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }
            //https://tj422637.onloon.co/callback/mail/trace/hit?messageID=mid:4191b2fd09274c4ba4e6811c26dc95c4&extMessageID=extmid:21147d3a3cb14687afb9b48e28f6f879&redirect_url=https%3A%2F%2Fwww.baidu.com%2F
//            url = String.format(replace, url);
            url = url.substring(url.indexOf("redirect_url=") + 13);
            // 將target屬性替換爲"",以便全部外鏈都是_blank打開
            String targetReg = "target=['|\"].*?['|\"']";
            String prefix = m.group(1).replaceAll(targetReg, "");
            String suffix = m.group(3).replaceAll(targetReg, "");
            // 整段匹配不會出現錯誤
            String _a = "<a" + prefix + " href='" + url + "'" + suffix + ">";
            src = src.replace(a, _a);
        }

        return src;
    }

 

 

public static void main(String[] args) {
        String replace = "http://trace" + "?messageID=" + "123";
        if (StringUtil.isNotBlank("456")) {
            replace += "&extMessageID=" + "456";
        }
        replace += "&redirect_url=%s";

        String src = "<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" bgcolor=\"#fff\" style=\"text-align: left\"><tbody><tr><td valign=\"top\" style=\"width:100%;\"><p style=\"font-size:18px;line-height:30px;text-align:justify;\">本週五務必上線,<a href=\"http://www.baidu.com\">若有問題</a>,及時通知!</p></td></tr><tr height=\"20\"></tr></tbody></table>";
        //添加連接
        src = formatA(src, A_HREF_URL, replace);
        System.out.println(src);
        //去除連接
        src = formatABackUp(src, A_HREF_URL);
        System.out.println(src);
    }

 

<table width="100%" border="0" cellspacing="0" cellpadding="0" bgcolor="#fff" style="text-align: left"><tbody><tr><td valign="top" style="width:100%;"><p style="font-size:18px;line-height:30px;text-align:justify;">本週五務必上線,<a href='http://trace?messageID=123&extMessageID=456&redirect_url=http%3A%2F%2Fwww.baidu.com' target='_blank'>若有問題</a>,及時通知!</p></td></tr><tr height="20"></tr></tbody></table>
<table width="100%" border="0" cellspacing="0" cellpadding="0" bgcolor="#fff" style="text-align: left"><tbody><tr><td valign="top" style="width:100%;"><p style="font-size:18px;line-height:30px;text-align:justify;">本週五務必上線,<a href='http://www.baidu.com'  target='_blank'>若有問題</a>,及時通知!</p></td></tr><tr height="20"></tr></tbody></table>
相關文章
相關標籤/搜索