<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">/**
 * rhhz.js ---浠佸拰杞欢鍓嶇鎻掍欢js闆嗗悎
 * tools{
 * 	subTextMax:鏂囨湰鍐呭鎸夐暱搴﹁缃埅鍙�,
 * 	menuView:鎸夌収椤甸潰璁剧疆杩涜椤甸潰鑿滃崟瀵瑰簲楂樹寒
 * }
 * function{
 * 	hasChinese:鍒ゆ柇褰撳墠瀵硅薄涓槸鍚﹀寘鍚腑鏂囧瓧绗�,
 * 	trim:瑙ｅ喅IE 瀵筳query Trim鏂规硶鐨勫吋瀹规€�,
 * 	startWith:鍒ゆ柇褰撳墠瀵硅薄鏄惁浠ュ瓧绗﹀紑濮�,
 * 	endWith:鍒ゆ柇瀛楃涓叉槸鍚︿互瀛楃缁撴潫,
 *  getFileUrl:鑾峰彇鏈湴璧勬簮鏂囦欢鐨勮矾寰�,
 *  preImg:棰勮鏈湴鍥剧墖,
 *  getUrlParam:鑾峰彇URL鍙傛暟鍒楄〃,
 *  getRefSupIndex:鑾峰彇鍙傝€冩枃鐚紩鐢ㄧ储寮�,
 *  isNull:鍒ゆ柇瀵硅薄鏄惁涓虹┖,
 *  formatDateToEn:灏嗘棩鏈熻浆鎹㈡垚鑻辨枃鏍煎紡 2016-1-1 --&gt; 01 Jan 2016
 *  GetRandomNum:鑾峰彇闅忔満鏁�
 *  dateStr:鑾峰彇缃戦〉椤堕儴鏄剧ず闇€瑕佺殑鏃ユ湡淇℃伅 鍙傛暟锛宼ype 1:涓枃  2鑻辨枃 3鑻辨枃绠€鍐� 锛� 2017-1-11 鏄熸湡涓�;  Wednesday, 11 January, 2017 ;Jan 20th, Wednesday
 * 	shareTools(type,obj):鍒嗕韩宸ュ叿锛宷zone,sina,weixin,renren,google+,facebook,linkedin,twitter
 * }
 * 
 * @version     v1.0
 * @date 		2016-09-30
 */

+function ($) {
    //璁剧疆瀛楃涓叉埅鍙栭粯璁ゅ弬鏁�
    var subTextDefaluts = {
        add_title: true,      //榛樿鎴彇鍚庤缃叏鍐呭title
        trim: true,//榛樿鎴彇鍚庡幓闄ら灏剧┖鍙婃崲琛岋紝鎰熻娌″暐鐢紝鍚庨潰鑰冭檻鍙栨秷
        content_type: 'html',//榛樿澶勭悊鍐呭涓篽tml鏍囩锛屽璁剧疆涓簍ext浼氭竻闄ゅ師鏈夋爣绛�
        keep_len: 10//榛樿鎴彇淇濈暀10涓瓧绗︼紝寤鸿閲囩敤閰嶇疆鏂瑰紡鎴栬€呭湪鏍囩涓缃�
    };

    //璁剧疆鑿滃崟楂樹寒榛樿鍙傛暟
    var menuDefaults = {
        defaultPage: 'index',			//榛樿鑾峰彇涓嶅埌椤甸潰绱㈠紩锛岃缃负棣栭〉
        pageViewId: 'pageViewId',		//椤甸潰绱㈠紩鍙栧€糏D
        hightLightTag: 'li',				//闇€瑕佽缃珮浜殑鏍囩
        highLightClass: 'current',		//褰撳墠椤甸€変腑楂樹寒class
        pageRelAttr: 'rel_page',			//鑿滃崟鍒楄〃涓储寮曞睘鎬ф爣璇�
        pageRelTag: 'li span'			//鑿滃崟鍒楄〃涓储寮曞彇鍊兼爣绛撅紝榛樿鍙杢ext().trim(),pageRelTag鍜宲ageRelAttr涓嶉渶瑕佸悓鏃跺瓨鍦�
    }

    $.fn.subTextMax = function (options) {
        var opts = $.extend({}, subTextDefaluts, options);
        return this.each(function () {
            var keepindex = parseInt($(this).attr("keep_len") == undefined ? opts.keep_len : $(this).attr("keep_len"));//瓒呭嚭keep鍊奸渶瑕佹埅鍙�
            var contentHtml = $(this).html().replace(/&amp;nbsp;/ig, '').replace(/\s+/g, ' ').replace(/\t|\r|\n/g, "").replace('&lt;sec&gt; &lt;b&gt;', '&lt;sec&gt;&lt;b&gt;').replace(/&lt;br[ ]*[/]{0,1}&gt;/g, "&lt;br/&gt;").trim();
            //var contentText = $(this).text().replace(/&amp;nbsp;/ig, '').replace(/\s+/g, ' ').replace(/\t|\r|\n/g,"").trim();
            var contentText = filterHTMLTag(contentHtml);

            if (contentText.length &gt; keepindex) {
                //濡傛灉闇€瑕侊紝鍙姞title锛宼itle涓哄叏閮ㄦ枃鏈唴瀹�
                if (opts.add_title) {
                    if ($(this).attr("title") == '' || $(this).attr("title") == undefined) {
                        $(this).attr("title", contentText);
                    }
                }
                contentText = contentText.substr(0, keepindex);
                if (opts.content_type == 'text') {
                    $(this).html(contentText + "...");
                } else {
                    //瀵笻TML鏍囩鍐呭杩涜鎴彇鍒嗕负鍥涗釜姝ラ1瀛樺偍鍘熸湁鏍囩  2鎸夌収text杩涜鎴彇  3瀵规埅鍙栧悗鐨則ext杩涜鏍囩鎻掑叆  4琛ュ叏鏈棴鍚堟爣绛�
                    //1.澶勭悊鍘熸湁鏍囩
                    //鑾峰彇褰撳墠鍐呭涓殑鍚勪釜鏍囩鍙婃墍鍦ㄤ綅缃�
                    var rgx = /&lt;[^&lt;^&gt;]+&gt;/; //鏍囩鍖归厤姝ｅ垯
                    var index = 0;
                    var tags = new Array();
                    while (rgx.test(contentHtml)) {
                        var t = new Object();
                        //鏍囩鍑虹幇鐨勪綅缃�
                        t.index = index + contentHtml.search(rgx);
                        //鏍囩鍐呭
                        t.tag = contentHtml.match(rgx).toString();
                        //姣忔鍖归厤绗竴涓爣绛撅紝鍖归厤瀹屽垹闄ゆ鏍囩锛屽悓鏃剁储寮曚綅缃姞褰撳墠鏍囩鐨勯暱搴�
                        var len = contentHtml.search(/&lt;[^&lt;^&gt;]+&gt;/) + contentHtml.match(/&lt;[^&lt;^&gt;]+&gt;/)[0].length;
                        contentHtml = contentHtml.substr(len);
                        index += len;
                        tags.push(t);
                    }
                    //2.鎴彇text鍐呭锛屼笂闈㈠凡缁忔埅鍙栬繃浜�
                    //3.濉厖鍘熸湁鏍囩
                    if (tags.length &gt; 0) {
                        $.each(tags, function (i, e) {
                            if (e.index &gt; contentText.length) {
                                //濡傛灉褰撳墠鑺傜偣鐨勫紑濮嬩綅缃ぇ浜庡綋鍓嶈繑鍥炲瓧绗︿覆鐨勯暱搴﹀垯涓嶅啀缁х画鍒ゆ柇
                                tags = tags.slice(0, i);
                                return false;
                            } else {
                                //灏嗗師鏈夋爣绛炬彃鍏ュ師浣嶇疆
                                contentText = contentText.substr(0, e.index) + e.tag + contentText.substr(e.index, contentText.length);
                            }
                        })
                    }
                    //4.闂悎鏍囩
                    //鑾峰彇鏈棴鍚堟爣绛撅紝鏍囩濉厖鏃朵笉闇€瑕佸～鍏呯殑鏍囩閮借slice杩囨护鎺変簡锛屾墍浠ュ墿涓嬬殑閮芥槸宸茬粡鍦ㄥ唴瀹逛腑鐨勬爣绛句簡锛岄渶瑕佽繘琛屽垽鏂棴鍚堝鐞�
                    var insertTags = new Array();//宸叉纭彃鍏ユ爣绛�
                    var uncloseTags = new Array();//鏈棴鍚堟爣绛�
                    if (tags.length &gt; 0) {
                        $.each(tags, function (i, e) {
                            //鍏堝皢鎵€鏈夋彃鍏ョ殑鏍囩鏀惧埌鎻掑叆鍜屾湭闂悎鍒楄〃涓�
                            uncloseTags.push(e.tag);
                            insertTags.push(e.tag);
                        })
                        $.each(insertTags, function (i, e) {
                            //鑷棴鍚堟爣绛句笉闇€瑕佽ˉ鍏紝鍒犻櫎濡�&lt;br/&gt;
                            if (/&lt;[^&lt;^&gt;^\/]+\/&gt;/.test(e)) {
                                uncloseTags.splice($.inArray(e, uncloseTags), 1);
                                return true;
                            }
                            //瀵瑰乏鏍囩杩涜闂悎鍒ゆ柇锛屽鏋滃悓鏃跺瓨鍦ㄤ竴缁勫乏鍙虫爣绛撅紝鍒欏悓鏃跺垹闄ゅ嵆鍙紝鐢变簬鎴愮粍鐨勫垹闄わ紝鎵€浠ヤ笉鐢ㄨ€冭檻澶氫釜&lt;div&gt;瀵瑰簲涓€涓�&lt;/div&gt;鐨勬儏鍐碉紝鎴戜滑鍙渶瑕佹寜鐓ч『搴忚幏鍙栧埌鏈棴鍚堢殑鍒楄〃鍗冲彲
                            if (/&lt;[^&lt;^&gt;^\/]+&gt;/.test(e)) {
                                var tagClosed = "";
                                if (e.indexOf(" ") &gt; 0) {
                                    tagClosed = "&lt;/" + e.substring(1, e.indexOf(" ")) + "&gt;";
                                } else {
                                    tagClosed = "&lt;/" + e.substring(1, e.length);
                                }
                                //鍚屾椂瀛樺湪闂悎鏍囩
                                if ($.inArray(tagClosed, uncloseTags) != -1) {
                                    uncloseTags.splice($.inArray(e, uncloseTags), 1);
                                    uncloseTags.splice($.inArray(tagClosed, uncloseTags), 1);
                                }
                            }
                        })
                    }
                    //姝ゆ椂uncloseTags宸茬粡鏄湭闂悎鐨勬爣绛惧垪琛ㄤ簡
                    //鐢熸垚闂悎鏍囩锛屾牴鎹爣绛惧祵濂楄鍒欙紝鍙虫爣绛惧拰宸︽爣绛惧搴旓紝濡�&lt;div&gt;&lt;p&gt;   --  &lt;/p&gt;&lt;/div&gt;锛屾墍浠ュ厛灏嗘湭闂悎鏍囩鏁扮粍閫嗗簭
                    if (uncloseTags.length &gt; 0) {
                        var closeTagStr = "";
                        uncloseTags.reverse();
                        $.each(uncloseTags, function (i, e) {
                            if (e.indexOf(" ") &gt; 0) {
                                closeTagStr += "&lt;/" + e.substring(1, e.indexOf(" ")) + "&gt;";
                            } else {
                                closeTagStr += "&lt;/" + e.substring(1, e.length);
                            }
                        })
                        contentText += "..." + closeTagStr;
                    } else {
                        contentText += "...";
                    }
                    //鎷兼帴瀹屾垚
                    $(this).html(contentText);
                }

            }
        })
    }
}(jQuery);

/**
 * 鑷畾涔夊瓧绗︿覆缁撳熬鍒ゅ畾鏂规硶锛屼互s缁撳熬杩斿洖true锛屽惁鍒欒繑鍥瀎alse
 * @param s
 * @return
 */
String.prototype.endsWith = function (s) {
    if (s == null || s == "" || this.length == 0 || s.length &gt; this.length)
        return false;
    if (this.substring(this.length - s.length) == s)
        return true;
    else
        return false;
    return true;
}
String.prototype.endWith = function (s) {
    if (s == null || s == "" || this.length == 0 || s.length &gt; this.length)
        return false;
    if (this.substring(this.length - s.length) == s)
        return true;
    else
        return false;
    return true;
}

/**
 * 鑷畾涔夊瓧绗︿覆寮€濮嬪垽瀹氭柟娉曪紝浠寮€濮嬭繑鍥瀟rue锛屽惁鍒欒繑鍥瀎alse
 * @param s
 * @return
 */
String.prototype.startsWith = function (s) {
    if (s == null || s == "" || this.length == 0 || s.length &gt; this.length)
        return false;
    if (this.substr(0, s.length) == s)
        return true;
    else
        return false;
    return true;
}
String.prototype.startWith = function (s) {
    if (s == null || s == "" || this.length == 0 || s.length &gt; this.length)
        return false;
    if (this.substr(0, s.length) == s)
        return true;
    else
        return false;
    return true;
}

/**
 * IE娴忚鍣ㄥ吋瀹筳query trim鏂规硶
 * @return
 */
String.prototype.trim = function () {
    return this.replace(/(^\s*)|(\s*$)/g, "");
}
/**
 * 鑾峰彇鍦板潃鏍弖rl鍙傛暟
 * @param name
 * @return
 */
function getUrlParam(name) {
    var reg = new RegExp("(^|&amp;)" + name + "=([^&amp;]*)(&amp;|$)");
    var r = window.location.search.substr(1).match(reg);
    if (r != null) return decodeURI(r[2]); return null;
    //return $("#language").val();
}

/**
 * 浠庡弬鑰冩枃鐚紩鐢ㄤ俊鎭腑鎻愬彇鍙傝€冩枃鐚储寮�
 * 鏀寔鏍煎紡"[1,3,5-8,11,13-18,19]"
 * @param refSup
 * @return
 */
function getRefSupIndex(refSup) {
    if (!isNull(refSup)) {
        refSup = refSup.replace(/[\[|\]]/g, '').trim();
        var chars = ['~', '鈥�', '鈥�', '锛�', '-', '鈭�', '鈦�'];
        $.each(chars, function (ind, val) {
            var reg = new RegExp(val, "g");
            refSup = refSup.replace(reg, '&amp;');
        });
        var refIndexs = [];
        $.each(refSup.split(","), function (i, e) {
            if (isNaN(e)) {
                var startEnd = e.split("&amp;");
                var start = parseInt(startEnd[0]);
                var end = parseInt(startEnd[1]);
                for (var i = start; i &lt;= end; i++) {
                    refIndexs.push(i);
                }
            } else {
                refIndexs.push(e);
            }
        })
        //alert(refIndexs);
        return refIndexs;
    }
    return null;
}

/**
 * 灏佽鍒ゆ柇瀵硅薄涓虹┖鏂规硶
 * @param object
 * @return
 */
function isNull(object) {
    return typeof (object) == "undefined" || object == null || object == "";
}

/**
 * 鑾峰彇闅忔満鏁�
 * @param Min
 * @param Max
 * @return
 */
function GetRandomNum(Min, Max) {
    var Range = Max - Min;
    var Rand = Math.random();
    return (Min + Math.round(Rand * Range));
}

/**
 * 鑾峰彇缃戦〉椤堕儴鏄剧ず闇€瑕佺殑鏃ユ湡淇℃伅
 * @param type 1:涓枃  2鑻辨枃 3鑻辨枃绠€鍐�
 * 	  2017-1-11 鏄熸湡涓�
 * 	  Wednesday, 11 January, 2017 
 *    Jan 20th, Wednesday
 * @return
 */
function dateStr(type) {
    var date = new Date();
    return parseInt(type) == 1 ?
        formatDate(date, type) + " " + getTodayWeek(type) :
        getTodayWeek(type) + ", " + formatDate(date, type);
}


/**
 * 灏嗘棩鏈熸牸寮忓寲鎴愯嫳鏂囨牸寮�
 * 2017-1-11
 * 11 January, 2017
 * Jan 11, 2017
 * @param date
 * */
function formatDate(date, type) {
    if (!isNull(date)) {
        var dateStr = JSON.stringify(date).substring(1, 11);
        var dateVal = dateStr.split("-");
        var month = dateVal[1];
        if (month.charAt(0) == 0) { month = month.charAt(1); }
        var monthArray = new Array
            ("January", "February", "March", "April", "May", "June", "July", "August",
                "September", "October", "November", "December");
        var monthArraySimple = new Array
            ("Jan", "Feb", "Mar", "Apr", "May", "June", "July", "Aug",
                "Sep", "Oct", "Nov", "Dec");
        switch (type) {
            case 1:
                return dateStr;
            case 2:
                return dateVal[2] + " " + monthArray[month - 1] + ", " + dateVal[0];
            case 3:
                return monthArraySimple[month - 1] + " " + dateVal[2] + ", " + dateVal[0];
        }
    }
}

/**
 * 鑾峰彇鏄熸湡鍑�
 * @param type 1:涓枃  2鑻辨枃 3鑻辨枃绠€鍐�
 * @return
 */
function getTodayWeek(type) {
    var chinese = new Array("鏄熸湡鏃�", "鏄熸湡涓€", "鏄熸湡浜�", "鏄熸湡涓�", "鏄熸湡鍥�", "鏄熸湡浜�", "鏄熸湡鍏�");
    var english = new Array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday");
    var englishSigle = new Array("Sun.", "Mon.", "Tues.", "Wed.", "Thur.", "Fri.", "Sat.");
    var week = new Date().getDay();
    switch (type) {
        case 1:
            return chinese[week];
        case 2:
            return english[week];
        case 3:
            return englishSigle[week];
    }
}

/**
 * 鍒嗕韩宸ュ叿鏂规硶
 * @param type
 * @return
 */
function shareTools(type, obj) {
    if (obj &amp;&amp; obj.parents(".shareUrlTools").length) {
        var url = window.location.protocol + "//" + window.location.host + obj.parents(".shareUrlTools").attr("data-url");
        var title = obj.parents(".shareUrlTools").attr("data-title");
    } else {
        var url = window.location;
        var title = $("head title").text();
    }
    var description = $("meta[name='abstract']").attr("content") || $("meta[name='description']").attr("content") || $("meta[name='dc.description']").attr("content") || $("meta[http-equiv='description']").attr("content");
    var shareUrl = "";
    switch (type) {
        case 'qzone':
            shareUrl = "http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?url=" + url + "&amp;title=" + title;
            break;
        case 'sina':
            shareUrl = "http://service.weibo.com/share/share.php?title=" + title + "&amp;url=" + url + "&amp;pic=";
            break;
        case 'weixin':
            shareUrl = local_host + "util/QrcodeServlet?url=" + url;
            break;
        case 'renren':
            shareUrl = "http://widget.renren.com/dialog/share?resourceUrl=" + url + "&amp;srcUrl=" + url + "&amp;title=" + title + "&amp;pic=&amp;description=" + description;
            break;
        case 'google+':
            shareUrl = "https://plus.google.com/share?url=" + url + "&amp;t=" + title;
            break;
        case 'facebook':
            shareUrl = "http://www.facebook.com/sharer.php?s=100&amp;p[title]=" + title + "&amp;p[summary]=" + description + "&amp;p[url]=" + url + "&amp;p[images]=";
            break;
        case 'linkedin':
            shareUrl = "http://www.linkedin.com/shareArticle?armin=armin&amp;ro=true&amp;mini=true&amp;url=" + url + "&amp;source=&amp;title=" + title + "&amp;summary=" + description;
            break;
        case 'twitter':
            shareUrl = "https://twitter.com/intent/tweet?text=" + title + "&amp;url=" + url;
            break;
        default:
            shareUrl = "http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?url=" + url + "&amp;title=" + title;
            break;
    }
    if ("weixin" == type) {
        $(".weixinQrcode").attr("src", shareUrl);
    } else {
        window.open(shareUrl, "_blank");
    }
}
function closeWeiXinBox(obj) {
    $(obj).parent().hide();
}

//杩囨护HTML鏍囩
function filterHTMLTag(str) {
    if (!str) {
        return str;
    } else {
        var msg = str.replace(/&lt;\/?[^&gt;]*&gt;/g, ''); //鍘婚櫎HTML Tag
        msg = msg.replace(/[|]*\n/, ''); //鍘婚櫎琛屽熬绌烘牸
        msg = msg.replace(/&amp;nbsp;/ig, ''); //鍘绘帀npsp
        return msg;
    }
}

//鏌ヨ鏉′欢鐩稿叧鏂规硶
function SearchCond(field, operator, value, dataType, relation, paramEntity) {
    this.dataType = dataType;
    this.paramName = field;
    this.operate = operator;
    this.paramValue = value;
    this.relation = relation;
    this.paramEntity = paramEntity;
}

function SearchTools_put(conds, searchCond) {
    if (searchCond.paramValue != null &amp;&amp; searchCond.paramValue != "") {
        conds.push(searchCond);
    }
}

function OrderByCond(field, value) {
    this.dataType = "";
    this.paramName = field;
    this.operate = "";
    this.paramValue = value;
}

function OrderTools_put(conds, orderByCond) {
    if (orderByCond.paramValue != null &amp;&amp; orderByCond.paramValue != "") {
        conds.push(orderByCond);
    }
}

function isNull(object) {
    return typeof (object) == "undefined" || object == null || object == "";
}

/**
 * 澶勭悊鍐呭涓殑xml閾炬帴鏍囩
 * @param input 鍐呭
 * @returns {*} 澶勭悊缁撴灉
 */
function convertLink(input) {
    var output = input;
    output = output.replace(/&lt;ext-link/g, "&lt;a")
        .replace(/&lt;\/ext-link/g, "&lt;/a")
        .replace(/xlink:href/g, "href")
        .replace(/ext-link-type="uri"/g, "target=\"_blank\"");

    return output;
}

/**
 * 鎸夌储寮曡幏鍙栧唴瀹逛腑鐨勬鍒欏尮閰嶇粨鏋�
 * @param source 鍐呭
 * @param regx 姝ｅ垯琛ㄨ揪寮�
 * @param index 绱㈠紩
 * @returns {*|string} 绱㈠紩浣嶇疆鐨勬鍒欏尮閰嶇粨鏋�
 */
function getMatcherByIndex(source, regx, index) {

    var pattern = new RegExp(regx);
    var list = source.match(pattern);
    if (!isNull(list)) {
        var result = list[index];
        if (!isNull(result)) {
            return result;
        }
    }

    return "";
}

function isNull(object) {
    return typeof (object) == "undefined" || object == null || object == "";
}

/**
 * 澶勭悊鍐呭涓殑xml閾炬帴鏍囩
 * @param input 鍐呭
 * @returns {*} 澶勭悊缁撴灉
 */
function convertLink(input) {
    var output = input;
    output = output.replace(/&lt;ext-link/g, "&lt;a")
        .replace(/&lt;\/ext-link/g, "&lt;/a")
        .replace(/xlink:href="([^"]*)"/g, "href=\"$1\"")
        .replace(/ext-link-type="uri"/g, "target=\"_blank\"");

    return output;
}

/**
 * 姝ｅ垯鏇挎崲,replaceAll涓嶅ソ鐢�,閲嶅啓閫昏緫
 * @param source 婧愬瓧绗︿覆
 * @param target 鏇挎崲缁撴灉
 * @param regx 姝ｅ垯琛ㄨ揪寮�
 * @returns {*} 鏇挎崲缁撴灉
 */
function replaceRegx(source, target, regx) {
    var result = source;
    var pattern = new RegExp(regx, 'g');
    var list = result.match(pattern);
    if (!isNull(list))
        for (var i = 0; i &lt; list.length; i++) {
            var str = list[i];
            result = result.replace(str, target);
        }

    return result;
}

/**
 * 鍒ゆ柇鍐呭鏄惁鍖呭惈doi:
 * @param context
 * @returns {boolean}
 */
function isContainsByDoi(context) {
    if (!isNull(context)) {
        var re = context.toUpperCase().replace(/ /g, "");
        return re.indexOf("DOI:") != -1;
    }
    return false;
}

/**
 * 澶勭悊鍏紡鍐呭
 * @param sourceStr 闇€瑕佸鐞嗙殑瀛楃涓�
 * @returns {*|string|string} 澶勭悊缁撴灉
 */
function convertMathHtml(sourceStr) {

    if (isNull(sourceStr)) return "";
    sourceStr = replaceRegx(sourceStr, "", "&lt;[/]{0,1}multi_end[/]{0,1}&gt;");
    sourceStr = replaceRegx(sourceStr, "", "&lt;[/]{0,1}multi_start[/]{0,1}&gt;");
    sourceStr = sourceStr.trim();
    sourceStr = sourceStr.replace(/jlmText/g, "text");

    //xdf20220615 鍏煎mml鏍煎紡鍏紡,鍓旈櫎mml:
    sourceStr = sourceStr.replace(/&lt;mml:/g, "&lt;").replace(/&lt;\/mml:/g, "&lt;/").replace(/:mml/g, "");

    //xdf20220712 鍓旈櫎杈撳嚭鏁版嵁涓殑cdata鏍囩
    sourceStr = sourceStr.replace(/&lt;!\[CDATA\[/g, "").replace(/]]&gt;/g, "");

    var tempStr = sourceStr;
    if (sourceStr.indexOf("&lt;disp-formula") != -1) { //鐙珛娈佃惤琛屽叕寮�

        var imgSrc = "";
        //濡傛灉鏄叕寮忓浘鐗囷紝鐩存帴鍥剧墖杈撳嚭
        if (sourceStr.indexOf("graphic ") != -1) {
            imgSrc = getMatcherByIndex(sourceStr, "xlink:href=\"(.*?)\"", 1);
        }

        tempStr = replaceRegx(tempStr, "", "&lt;label&gt;.*?&lt;/label&gt;");
        tempStr = replaceRegx(tempStr, "", "&lt;disp-formula.*?&gt;");
        tempStr = replaceRegx(tempStr, "", "&lt;tex-math.*?&gt;");
        tempStr = replaceRegx(tempStr, "", "&lt;graphic.*?&gt;.*?&lt;/graphic&gt;");
        tempStr = replaceRegx(tempStr, "", "&lt;alternatives.*?&gt;");
        tempStr = replaceRegx(tempStr, "", "&lt;graphic.*?&gt;");

        tempStr = tempStr.replace(/&lt;label\/&gt;/g, "")
            .replace(/\\begin{document}/g, "").replace(/\\end{document}/g, "")
            .replace(/\\begin{equation} \\begin{CJK}{GBK}{song}/g, "")
            .replace(/\\end{CJK} \\end{equation}/g, "")
            .replace(/&lt;\/disp-formula&gt;/g, "")
            .replace(/&lt;\/tex-math&gt;/g, "")
            .replace(/&lt;\/alternatives&gt;/g, "")
            .replace(/&lt;\/graphic&gt;/g, "").trim();

        if (tempStr.startsWith("&lt;p&gt;") &amp;&amp; tempStr.endsWith("&lt;/p&gt;")) {
            tempStr = replaceRegx(tempStr, "", "\r\n\t");
            tempStr = tempStr.replace(/&lt;p&gt;/g, "").replace(/&lt;\/p&gt;/g, "").trim();
            if (tempStr.startsWith("$") &amp;&amp; !tempStr.startsWith("$$")) {
                tempStr = "$" + tempStr + "$";
            }
        }
        //濡傛灉鏄叕寮忓浘鐗囷紝鐩存帴鍥剧墖杈撳嚭
        if (sourceStr.indexOf("graphic ") !== -1) {
            var result = "";
            if (sourceStr.indexOf("&lt;tex-math") !== -1) {//濡傚唴瀹瑰寘鍚�&lt;tex-math,闅愯棌鍥剧墖
                result = tempStr + "&lt;p class='img-formula' style='display:none;'&gt;&lt;img class='formula-img' src='" + imgSrc + "'&gt;&lt;/p&gt;";
            } else {
                result = tempStr + "&lt;p class='img-formula'&gt;&lt;img class='formula-img' src='" + imgSrc + "'&gt;&lt;/p&gt;";
            }
            result = convertLink(result);
            return result;
        }
    } else if (sourceStr.indexOf("&lt;tex-math") !== -1) { //闈炴钀藉叕寮忎笖鍐呭涓寘鍚叕寮忓垯涓鸿鍐呭叕寮�
        //姝ｅ垯鍖归厤inline-formula,寰幆澶勭悊
        var pattern = new RegExp("(&lt;inline-formula[^&gt;]*&gt;[\\s\\S]*?&lt;/inline-formula&gt;)", "g");

        var results = sourceStr.match(pattern);
        if (results) {
            for (var i = 0; i &lt; results.length; i++) {
                currentMath = results[i]
                var imgSrc = getMatcherByIndex(currentMath, "xlink:href=\"(.*?)\"", 1);
                var textMathStr = getMatcherByIndex(currentMath, "&lt;tex-math.*?&gt;([\\s\\S]*?)&lt;/tex-math?&gt;", 0);
                var textMath = textMathStr;
                textMath = replaceRegx(textMath, "", "&lt;tex-math.*?&gt;");
                textMath = replaceRegx(textMath, "", "&lt;inline-graphic&gt;.*?&lt;/inline-graphic&gt;");
                textMath = replaceRegx(textMath, "\\$", "\\$((\n)|[ ])*\\$");
                textMath = replaceRegx(textMath, "", "&lt;inline-graphic.*?&gt;.*?&lt;/inline-graphic&gt;");
                textMath = replaceRegx(textMath, "", "&lt;inline-graphic.*?&gt;");
                textMath = replaceRegx(textMath, "", "&lt;/inline-graphic&gt;");
                textMath = textMath.replace(/\\begin{document}/g, "$")
                    .replace(/\\end{document}/g, "$")
                    .replace(/\\begin{equation} \\begin{CJK}{GBK}{song}/g, "$")
                    .replace(/\\end{CJK} \\end{equation}/g, "$")
                    .replace(/&lt;\/tex-math&gt;/g, "");

                var mathId = getMatcherByIndex(currentMath, "&lt;tex-math.*?id=\"(.*?)\"&gt;", 0);
                mathId = replaceRegx(mathId, "", "&lt;tex-math.*?id=\"");
                mathId = replaceRegx(mathId, "", "\"&gt;");
                if (!isNull(imgSrc)) {//鏈夊浘鐗囨椂灏嗗浘鐗囬殣钘忓悗杈撳嚭
                    var imgTag = "&lt;span class=\"inline-formula-span\"&gt;" + textMath
                        + "&lt;/span&gt;&lt;img text_id='" + mathId + "' class='formula-img' style='display:none;' src='" + imgSrc + "'&gt;";
                    sourceStr = sourceStr.replaceAll(textMathStr, imgTag);
                } else {
                    sourceStr = sourceStr.replaceAll(currentMath, textMath);
                }
            }
        }

        if (!isNull(sourceStr)) {
            tempStr = sourceStr;
            tempStr = replaceRegx(tempStr, "", "&lt;label&gt;.*?&lt;/label&gt;");
            tempStr = tempStr.replace(/&lt;label\/&gt;/g, "");
            tempStr = tempStr.replace(/\\\\begin{equation} \\\\begin{CJK}{GBK}{song}/g, "")
                .replace(/\\\\end{CJK} \\\\end{equation}/g, "");
            tempStr = replaceRegx(tempStr, "", "&lt;disp-formula.*?&gt;");
            tempStr = tempStr.replace(/&lt;\/disp-formula&gt;/g, "");
            tempStr = replaceRegx(tempStr, "", "&lt;tex-math.*?&gt;");
            tempStr = tempStr.replace(/&lt;\/tex-math&gt;/g, "");
            if (tempStr.indexOf("&lt;/graphic&gt;") != -1) {
                tempStr = replaceRegx(tempStr, "", "&lt;graphic.*?&gt;.*?&lt;/graphic&gt;");
            }
            tempStr = replaceRegx(tempStr, "", "&lt;graphic.*?&gt;");
            tempStr = tempStr.replace(/&lt;\/graphic&gt;/g, "").trim();
        }
    } else if (sourceStr.indexOf("&lt;graphic ") !== -1) {
        // var imgSrc = "";
        // imgSrc = getMatcherByIndex(sourceStr, "xlink:href=\"(.*?)\"", 0);

        // tempStr = replaceRegx(tempStr, "", "&lt;graphic.*?&gt;.*?&lt;/graphic&gt;");

        // tempStr = tempStr.replace(/&lt;\/graphic&gt;/g, "").trim();

        // var result = tempStr + "&lt;img class='formula-img' src='" + imgSrc + "'&gt;";
        // result = convertLink(result);
        // return result;

        var parser = new DOMParser();
        var parseTempStr = parser.parseFromString(tempStr, "text/xml");
        var graphics = parseTempStr.getElementsByTagName("graphic");
        for (var i = 0; i &lt; graphics.length; i++) {
            var graphicNode = graphics[i];

            // 妫€鏌ユ槸鍚﹀寘鍚壒瀹氱殑xlink:href 灞炴€�
            if (graphicNode.getAttribute("xlink:href")) {

                // 鑾峰彇 xlink:href 灞炴€х殑鍊�
                var imageUrl = graphicNode.getAttribute("xlink:href");

                // 鍒涘缓鏂扮殑 &lt;img&gt; 鍏冪礌锛屽苟璁剧疆 src 灞炴€�
                var imgElement = document.createElement('img');
                imgElement.src = imageUrl;

                // 鏇挎崲鍘熸潵鐨� &lt;graphic&gt; 鍏冪礌
                graphicNode.parentNode.replaceChild(imgElement, graphicNode);
            }
        }

        // 姝ゆ椂锛宲arseTempStr 宸茬粡鍖呭惈浜嗘浛鎹㈠悗鐨勭粨鏋�
        tempStr = new XMLSerializer().serializeToString(parseTempStr);

        return tempStr;
    }
    tempStr = convertLink(tempStr);
    return tempStr;

}

/**
 * 鎷艰鍙傝€冩枃鐚摼鎺�
 * @param source url鎴杁oi
 * @param isIcon 鏄惁灞曠ず涓烘寜閽�
 * @param type 绫诲瀷:doi,url
 * @returns {string} 鎷艰鐨刟閾炬帴html
 */
function getReferLinkHtml(source, isIcon, type) {
    var typeClass = 'ref-doi';
    if (type == 'url') typeClass = 'ref-url'

    var iconClass = '';
    var show = source;
    if (isIcon &amp;&amp; isIcon == "true") {
        iconClass = 'icon';
        show = '';
    }

    var href = source;
    if (type != 'url') href = 'https://dx.doi.org/' + source;

    return ' &lt;a class=\"mainColor ' + typeClass + ' ' + iconClass + '\" href=\"' + href + '\" target=\"_blank\"&gt;' + show + '&lt;/a&gt;';
}

/**
 * 鑾峰彇鍙傝€冩枃鐚殑杈撳嚭缁撴灉
 * @param content 鍙傝€冩枃鐚殑鏂囨湰鍐呭
 * @param doi 鍙傝€冩枃鐚殑doi
 * @param isIcon 閾炬帴鏄惁瑕佹樉绀轰负鎸夐挳
 * @param isUp doi:鏄惁闇€瑕佸ぇ鍐�
 * @param url 鍙傝€冩枃鐚殑閾炬帴
 * @returns {string} 鎷艰鍚庣殑鍙傝€冩枃鐚�
 */
function referenceDOIReplace(content, doi, isIcon, isUp, url) {
    var doiHtml = "";
    if (isNull(doi)) doi = "";
    if (isNull(url)) url = "";
    if (isContainsByDoi(content)) {//鍒ゆ柇鏄惁鍖呭惈doi:
        if (!isNull(doi)) {//浼犲叆doi鏃剁洿鎺ュ皢doi杞负閾炬帴杩涜鏇挎崲
            doiHtml = getReferLinkHtml(doi, isIcon, 'doi');
            content = content.replaceAll(doi, doiHtml);
        } else {//鏈紶鍏oi鏃�,浠庡唴瀹逛腑鍒囧嚭doi,鐒跺悗杞负閾炬帴骞惰繘琛屾浛鎹�
            var re = content.toUpperCase().replace(/ /g, "");
            var inner = re.indexOf("DOI:") + 4;
            doi = content.replace(/ /g, "").substring(inner);

            if (doi.endsWith(".")) {
                doi = doi.substring(0, doi.length - 1);
            }
            doiHtml = getReferLinkHtml(doi, isIcon, 'doi');
            content = content.replaceAll(doi, doiHtml);
        }
    } else {//涓嶅寘鍚玠oi:鏃�
        if (content.indexOf("doi.org") != "-1" &amp;&amp; content.indexOf(doi) != "-1" &amp;&amp; !isNull(doi)) {//doi鐨勯摼鎺ユ槸甯︽湁doi.org鐨勫畬鏁撮摼鎺ユ椂,鏁存潯閾炬帴杞琣鏍囩
            var doiurl = content.substring(content.indexOf("http"), content.indexOf(doi));
            doiHtml = " &lt;a class=\"mainColor ref-doi\" href=\"" + doiurl + doi + "\" target=\"_blank\"&gt;" + doiurl + doi + "&lt;/a&gt;";
            content = content.replaceAll(doiurl + doi, doiHtml);
        } else if (!isNull(doi)) {//doi鐨勯摼鎺ヤ笉鏄甫doi.org鐨勫畬鏁撮摼鎺ユ椂,涓旀湁浼犲叆doi,灏�'doi:'+doi閾炬帴鎷艰鍒板唴瀹瑰熬閮�
            doiHtml = getReferLinkHtml(doi, isIcon, 'doi');
            if ("U" == isUp) {
                content = content + "&lt;span&gt;" + " doi: ".toUpperCase() + doiHtml + "&lt;/span&gt;";
            } else {
                content = content + "&lt;span&gt;" + " doi: ".toLowerCase() + doiHtml + "&lt;/span&gt;";
            }
        } else if (!isNull(url)) {//娌℃湁doi:,娌℃湁doi.org,娌℃湁浼犲叆doi鐨勬儏鍐�,涓€鑸笉鏄痙oi鑰屾槸鍏朵粬閾炬帴,闇€瑕佸垽鏂槸鍚︿紶鍏rl
            if (url.lastIndexOf("/10.") != -1) {//鏈変紶鍏rl鏃�,鐪嬬湅url鏄笉鏄寘鍚玠oi,濡傛灉鏄�,鍒欏皢doi鍒囧嚭,杞负閾炬帴鍚庢嫾瑁呰嚦鍐呭灏鹃儴
                doi = url.substring(url.lastIndexOf("/10.") + 1, url.length);
                doiHtml = getReferLinkHtml(doi, isIcon, 'doi');
                if ("U" == isUp) {
                    content = content + "&lt;span&gt;" + " doi: ".toUpperCase() + doiHtml + "&lt;/span&gt;";
                } else {
                    content = content + "&lt;span&gt;" + " doi: ".toLowerCase() + doiHtml + "&lt;/span&gt;";
                }
            } else {//濡傛灉url涓嶅寘鍚玠oi,鎸夋櫘閫氶摼鎺ュ鐞�
                doiHtml = getReferLinkHtml(url, isIcon, 'url');
                // 濡傛灉鍐呭涓寘鍚玼rl锛屽垯鏇挎崲鍐呭涓殑url涓洪摼鎺ュ舰寮�
                if (content.indexOf(url) != "-1") {
                    content = content.replaceAll(url, doiHtml);
                } else {
                    content = content + doiHtml;
                }
            }
        } else if (content.indexOf("http") != "-1") {//娌℃湁doi:,娌℃湁doi.org,娌℃湁浼犲叆doi鍜寀rl鐨勬儏鍐�,浣嗘槸鍐呭涓寘鍚摼鎺�
            if (content.indexOf("&lt;a") == "-1" &amp;&amp; content.indexOf("&lt;ext-link") == "-1") {
                try {
                    var isConvertHttpUrl = allData.dic.referenceHttpUrl;
                    if ("1" == isConvertHttpUrl) {//浠呭綋鍚庡彴閰嶇疆=1鏃舵墠瀵瑰唴閮ㄩ摼鎺ヨ繘琛屽鐞�
                        //浣跨敤姝ｅ垯鍖归厤鍐呭涓殑閾炬帴骞堕€愭潯杞负html鍚庢浛鎹�
                        // var pattern = new RegExp("^(http://|ftp://|https://|www){0,1}[^\u4e00-\u9fa5\\s]*?\\.(com|net|cn|me|tw|fr)[^\u4e00-\u9fa5\\s]*", "g");
                        // var pattern = new RegExp("(http|ftp|https)://(?:www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}(?:[-a-zA-Z0-9@:%_\+.~#?&amp;/=]+)*$", "g");
                        var pattern = /https?:\/\/[\w\-\.]+\.[a-z]+(?:\/[\w\.\/?%&amp;=-]*)?/gi;
                        var results = content.match(pattern);
                        for (var i = 0; i &lt; results.length; i++) {
                            var httpUrl = results[i];
                            if (!isNull(httpUrl) &amp;&amp; httpUrl.endsWith(".")) {
                                httpUrl = httpUrl.substring(0, httpUrl.length - 1);
                            }

                            doiHtml = getReferLinkHtml(httpUrl, isIcon, 'url');
                            content = content.replaceAll(httpUrl, doiHtml);
                        }

                    }
                } catch (e) {
                    console.log("doi閾炬帴澶勭悊鏈厤缃�!!!")
                }
            } else if (content.indexOf("&lt;ext-link") != "-1") {
                // 浣跨敤xlink:href灞炴€ф椂锛岄渶瑕佸０鏄巟mlns:xlink鍛藉悕绌洪棿
                var xmlWrapper = '&lt;root xmlns:xlink="http://www.w3.org/1999/xlink"&gt;' + content + '&lt;/root&gt;';
                // 鍒涘缓DOMParser瀹炰緥
                var parser = new DOMParser();
                // 瑙ｆ瀽涓篨ML鏂囨。
                var parseTempStr = parser.parseFromString(xmlWrapper, "text/xml");

                // 閬嶅巻XML鏂囨。锛岃浆鎹xt-link涓篴鏍囩
                function convertExtLinkToA(node) {
                    if (node.nodeType === Node.ELEMENT_NODE &amp;&amp; node.tagName.toLowerCase() === 'ext-link') {
                        var aTag = document.createElement('a');
                        // 澶嶅埗灞炴€�
                        for (var i = 0; i &lt; node.attributes.length; i++) {
                            var attr = node.attributes[i];
                            if (attr.name.startsWith('xlink:')) {
                                if (attr.name === 'xlink:href') {
                                    aTag.href = attr.value;
                                }
                            }
                        }
                        // 绉诲姩瀛愯妭鐐瑰埌鏂板垱寤虹殑a鏍囩涓�
                        while (node.firstChild) {
                            aTag.appendChild(node.firstChild);
                        }
                        // 鏇挎崲鍘熻妭鐐�
                        node.parentNode.replaceChild(aTag, node);
                    } else {
                        for (var i = 0; i &lt; node.childNodes.length; i++) {
                            var child = node.childNodes[i];
                            convertExtLinkToA(child);
                        }
                    }
                }

                // 璋冪敤鍑芥暟杩涜杞崲
                convertExtLinkToA(parseTempStr.documentElement);

                // 搴忓垪鍖朮ML鏂囨。涓哄瓧绗︿覆锛屾敞鎰忚繖閲岀洿鎺ュ簭鍒楀寲鍙兘鍖呭惈XML澹版槑绛夐澶栦俊鎭紝闇€瑕佽繘涓€姝ュ鐞�
                var serializer = new XMLSerializer();
                var modifiedString = serializer.serializeToString(parseTempStr.documentElement);

                // 鍘婚櫎root鏍囩锛岃幏鍙栨渶缁堝瓧绗︿覆
                content = modifiedString.replace(/&lt;root[^&gt;]*&gt;|&lt;\/root&gt;/g, '');
            }
        }
    }
    return content;
}

/**
 * 鍗婅杞叏瑙�
 *
 * @param input 杈撳叆瀛楃涓插弬鏁�
 * @return string 鍏ㄨ瀛楃涓�
 */
function convert2DoubleByte(input) {
    var result = []
    for (var i = 0; i &lt; input.length; i++) {
        var str = input[i];
        var charStr = input.charCodeAt(i);
        if (str == ' ') result.push('\u3000');
        else if (charStr &lt; 177) {
            charStr = charStr + 65248;
            result.push(String.fromCharCode(charStr));
        }
    }
    return result.join('');
}


/**
 * 鍏ㄨ杞崐瑙�
 *
 * @param input 杈撳叆瀛楃涓插弬鏁�
 * @return string 鍗婅瀛楃涓�
 */
function convertSingleByte(input) {
    var result = []
    for (var i = 0; i &lt; input.length; i++) {
        var str = input[i];
        var charStr = input.charCodeAt(i);
        if (str == '\u3000') result.push(' ');
        else if (str &gt; '\uFF00' &amp;&amp; str &lt; '\uFF5F') {
            charStr = charStr - 65248;
            result.push(String.fromCharCode(charStr));
        }
    }
    return result.join('');
}

/**
 * 鍒ゆ柇鏄惁涓洪檮鍥� 闄勮〃
 * @param tagId 鍥捐〃鐨則agId
 * @returns {boolean}
 */
function isNotSupplementary(tagId) {
    if (isNull(tagId)) return false;
    var pattern = new RegExp("^Table[^A-Za-z]+$");
    var pattern1 = new RegExp("^Figure[^A-Za-z]+$");
    var matcher = tagId.match(pattern);
    var matcher1 = tagId.match(pattern1);
    if (allData.journal.publisherId == "shyfyx" || allData.journal.publisherId == "xhcl") {
        // 鍏煎涓婃捣棰勯槻鍖诲涓璗1銆丗1鐨勫浘銆佽〃
        var pattern2 = new RegExp("^T[^A-Za-z]+$");
        var pattern3 = new RegExp("^F[^A-Za-z]+$");
        var matcher2 = tagId.match(pattern2);
        var matcher3 = tagId.match(pattern3);
        return !isNull(matcher) || !isNull(matcher1) || !isNull(matcher2) || !isNull(matcher3);
    } else {
        return !isNull(matcher) || !isNull(matcher1);
    }
}


/**
 * 鏇挎崲鐗规畩瀛楃
 */
function replaceXmlSpecialChar(sourceStr) {
    if (isNull(sourceStr)) return "";
    return sourceStr.replace(/漏/g, "&amp;#169;")
        .replace(/\*/g, "&amp;#42;")
        .replace(/鈥�/g, "&amp;#8212;")
        .replace(/&amp;gt;/g, "&amp;#62;")
        .replace(/&amp;lt;/g, "&amp;#60;");
}

/**
 * 鐗规畩瀛楃杈撳嚭杞崲
 * @param input
 * @returns {*|string}
 */
function convertInut(input) {
    //(&lt;)(&amp;)(&gt;)(")(')
    //&amp;lt锛�&amp;amp; &gt;" &amp;apos; (')

    if (isNull(input)) return "";
    input = input.replace(/&amp;/g, "&amp;amp;")
        .replace(/&lt;/g, "&amp;lt;")
        .replace(/&gt;/g, "&amp;gt;")
        .replace(/"/g, "&amp;quot;")
        .replace(/'/g, "&amp;apos;");
    return input;
}

/**
 * 澶勭悊鎽樿鍐呭
 *
 * @param str      鎽樿
 * @param language 璇█
 * @return string 澶勭悊缁撴灉
 */
function convertAbstractHtml(str, language) {
    if (isNull(str)) return "";
    var secReplace = "";
    var titleReplace = "";

    str = str.replace(/&lt;italic&gt;/g, "&lt;i&gt;").replace(/&lt;\/italic&gt;/g, "&lt;/i&gt;")
        .replace(/&lt;bold&gt;/g, "&lt;b&gt;").replace(/&lt;\/bold&gt;/g, "&lt;/b&gt;")
        .replace(/&lt;underline&gt;/g, "&lt;u&gt;").replace(/&lt;\/underline&gt;/g, "&lt;/u&gt;") //涓嬪垝绾�
        .replace(/&lt;overline&gt;/g, "&lt;span style=\"text-decoration:overline\"&gt;").replace(/&lt;\/overline&gt;/g, "&lt;/span&gt;") //涓婂垝绾�
        .replace(/&lt;strike&gt;/g, "&lt;s&gt;").replace(/&lt;\/strike&gt;/g, "&lt;/s&gt;")//涓垝绾裤€佸垹闄ょ嚎
        // .replace(/&lt;p&gt;/g, "").replace(/&lt;\/p&gt;/g, "")//p鏍囩
        .replace(/&lt;title\/&gt;/g, ""); //绌簍itle

    try {
        if ("en" == language) {
            secReplace = allData.dic.abstractSecReplaceEn;
            titleReplace = allData.dic.abstractTitleReplaceEn;
        } else {
            secReplace = allData.dic.abstractSecReplaceCn;
            titleReplace = allData.dic.abstractTitleReplaceCn;
        }
    } catch (e) {
        console.log("鏂规硶convertAbstractHtml閿欒!鎽樿涓璼ec,title鏇挎崲鏍囩鏈厤缃�!!!")
    }

    if (isNull(secReplace)) {//榛樿鏇挎崲涓篸iv
        str = str.replace(/&lt;sec&gt;/g, "&lt;div&gt;").replace(/&lt;\/sec&gt;/g, "&lt;/div&gt;");
    } else {
        var secReplaceArr = secReplace.split("\\$\\$\\$");
        var secReplace1 = secReplaceArr[0];
        var secReplace2 = secReplaceArr[1];
        str = str.replace(/&lt;sec&gt;/g, secReplace1).replace(/&lt;\/sec&gt;/g, secReplace2);
    }

    if (isNull(titleReplace)) {//榛樿鏇挎崲涓篵
        str = str.replace(/&lt;title&gt;/g, "&lt;b&gt;").replace(/&lt;\/title&gt;/g, "&lt;/b&gt;&amp;nbsp;");
    } else {
        var titleReplaceArr = titleReplace.split("\\$\\$\\$");
        var titleReplace1 = titleReplaceArr[0];
        var titleReplace2 = titleReplaceArr[1];
        str = str.replace(/&lt;title&gt;/g, titleReplace1).replace(/&lt;\/title&gt;/g, titleReplace2);
    }

    return convertMathHtml(str);
}


/**
 * 鑾峰彇鏂囩珷绫诲瀷杞崲鍚庣殑杈撳嚭
 */
function getArticleTypeOutput(input, language) {
    if (isNull(input)) {
        try {
            //鑾峰彇閰嶇疆
            var settingVal = allData.dic.articleTypeTrans;
            //閰嶇疆鏍煎紡涓� 鏂囩珷绫诲瀷(鍌ㄥ瓨):鏂囩珷绫诲瀷(涓枃杈撳嚭),鏂囩珷绫诲瀷(鑻辨枃杈撳嚭);
            if (!isNull(settingVal)) {
                var convertMap = new Map();
                //瑙ｆ瀽閰嶇疆鏂囦欢
                var types = settingVal.split(";");
                for (var type in types) {
                    if (!isNull(type)) {
                        var typeToTrans = type.split(":");
                        var cnToEn = typeToTrans[1].split(",");
                        if ("en" == language) {
                            convertMap.put(typeToTrans[0], cnToEn[1]);
                        } else {
                            convertMap.put(typeToTrans[0], cnToEn[0]);
                        }
                    }
                }
                //鑾峰彇鏂囩珷绫诲瀷鎵€瀵瑰簲鐨勮緭鍑�
                return convertMap.get(input);
            }
        } catch (e) {
            console.log("鏂规硶getArticleTypeOutput閿欒!瀛楀吀涓璦rticleTypeTrans鏈厤缃�!!!")
        }

    }
    return "";
}

/**
 * 鑾峰彇鍙傝€冩枃鐚牸寮� 1椤哄簭缂栫爜鍒�   2浣滆€呭嚭鐗堝勾鍒�
 */
function getReferenceType(refLable) {
    return !isNull(refLable) &amp;&amp; (/b[0-9]{1,3}/.test(refLable) || /[0-9]{1,3}/.test(refLable)) ? 1 : 2;
}

/**
 *  鍒犻櫎Html鏍囩
 *  @return string
 */
function delHTMLTag(htmlStr) {
    if (isNull(htmlStr)) return "";

    var regEx_script = "&lt;script[^&gt;]*?&gt;[\\s\\S]*?&lt;\\/script&gt;"; //瀹氫箟script鐨勬鍒欒〃杈惧紡
    var regEx_style = "&lt;style[^&gt;]*?&gt;[\\s\\S]*?&lt;\\/style&gt;"; //瀹氫箟style鐨勬鍒欒〃杈惧紡
    var regEx_html = "&lt;[^&gt;]+&gt;"; //瀹氫箟HTML鏍囩鐨勬鍒欒〃杈惧紡
    //var regEx_space = "\\s*|\t|\r|\n";//瀹氫箟绌烘牸鍥炶溅鎹㈣绗�
    var regEx_space = "\t|\r|\n";//瀹氫箟绌烘牸鍥炶溅鎹㈣绗�

    htmlStr = replaceRegx(htmlStr, "", regEx_script);
    htmlStr = replaceRegx(htmlStr, "", regEx_style);
    htmlStr = replaceRegx(htmlStr, "", regEx_html);
    htmlStr = replaceRegx(htmlStr, "", regEx_space);

    return htmlStr.trim();
}

/**
 * 鍒ゆ柇鏂囩珷鍐呭涓槸鍚︽湁鍥剧墖
 */
function isImg(context) {
    if (isNull(context)) return false;
    if (context.indexOf("img ") != "-1" &amp;&amp; context.indexOf("src=") != "-1") {
        return true;
    }
    return context.indexOf("graphic") != "-1";
}


/**
 * 鍒ゆ柇鏄惁鍖呭惈涓枃瀛楃
 */
function containsChinese(input) {
    if (isNull(input)) return false;

    var result = []
    for (var i = 0; i &lt; input.length; i++) {
        var str = input[i];
        var charStr = input.charCodeAt(i);
        if ((charStr &gt;= 0x4e00) &amp;&amp; (charStr &lt;= 0x9fbb)) {
            return true;
        }
    }
    return false;
}


/**
 * 缁勮鍙傝€冩枃鐚綔鑰呬俊鎭�
 * @param surNames 鍗曟潯鍙傝€冩枃鐚殑surNames
 * @param givenNames 鍗曟潯鍙傝€冩枃鐚殑givenNames
 * @returns {null|*[]}
 */
function buildRefAuthor(surNames, givenNames) {
    var containsChinese = containsChinese(surNames) || containsChinese(givenNames);
    var surNameList = surNames.split("(\\%\\$\\%)");
    var givenNameList = givenNames.split("(\\%\\$\\%)");
    var authors = [];
    for (var i = 0; i &lt; surNameList.length; i++) {
        if (!isNull(surNameList[i])) {
            var author = surNameList[i];
            //濮撳悕鍚屾椂瀛樺湪鏃惰繘琛屾嫾鎺�
            if (givenNameList.length == surNameList.length)
                author = containsChinese ? surNameList[i] + givenNameList[i] : surNameList[i] + " " + givenNameList[i];
            authors.push(author);
        }
    }
    return authors.length == 0 ? null : authors;
}


/**
 * 鍒ゆ柇瀛楃涓蹭腑鏄惁鍖呭惈鏁板瓧
 *
 * @param inputStr
 * @return
 */
function isContainsNumber(inputStr) {
    if (!isNull(inputStr)) {
        var p = new RegExp(".*\\d+.*", "g");
        if (p.test(inputStr)) {
            return true;
        }
    }
    return false;
}

/**
 * 澶勭悊椤电爜涓浆椤电瓑闂
 * @param pageNum 椤电爜
 * @returns {*|string}
 */
function getSinglePageNum(pageNum) {
    if (!isNull(pageNum)) {
        if (pageNum.indexOf("(") != "-1") {
            pageNum = pageNum.substring(0, pageNum.indexOf("("));
        }
        if (pageNum.indexOf(",") != "-1") {
            pageNum = pageNum.substring(0, pageNum.indexOf(","));
        }
        if (pageNum.indexOf("-") != "-1") {
            pageNum = pageNum.substring(0, pageNum.indexOf("-"));
        }
        return pageNum.trim();
    }
    return "0";
}


/**
 * 杈撳嚭鏂囩珷椤电爜
 * @param fpage 棣栭〉鐮�
 * @param lpage 灏鹃〉鐮�
 * @param pageLength 椤电爜闀垮害闄愬埗,涓€鑸负6,姝や负鏃х増閽堝elocationId璁剧疆,鏂扮増宸蹭抚澶变娇鐢ㄥ満鏅�
 * @returns {string}
 */
function outputPages(fpage, lpage, pageLength) {
    if (isNull(pageLength) || isNull(fpage)) {
        return "";
    }
    var result = "";
    if (fpage.length &lt; pageLength) {
        if (fpage == "0" || fpage == "00") {
            return "";
        }
        result = fpage;
        if (!isNull(lpage)) {
            result = result + "-" + lpage;
        }
    } else {
        result = fpage.substring(0, pageLength);
    }

    return result;
}

/**
 * 鍒ゆ柇鏄惁涓篸oi
 * @param str
 * @returns {boolean}
 */
function isDoi(str) {
    var doiReg = new RegExp("^10.\\d{4,9}/[-._;()/:a-zA-Z0-9]+$");
    if (!isNull(str)) {
        return doiReg.test(str);
    }
    return false;
}

/**
 * 鎶婂瓧绗︿覆杞垚棣栧瓧姣嶅ぇ鍐�,鍏朵綑灏忓啓鐨勫舰寮�
 */
function shiftString(sourceStr) {
    if (isNull(sourceStr)) return "";
    sourceStr = sourceStr.replace(/聽/g, "").trim();
    var tempString = sourceStr.toLowerCase();
    return tempString[0].toUpperCase() + tempString.substring(1);
}

/**
 * 灏嗕綔鑰呭湴鍧€淇℃伅涓鍙穞ag鏇挎崲涓烘暟瀛梩ag
 */
function replaceAffilTag(addressTag) {
    if (isNull(addressTag)) return "";
    return addressTag.replace(/鈶�/g, "1").replace(/鈶�/g, "2").replace(/鈶�/g, "3")
        .replace(/鈶�/g, "4").replace(/鈶�/g, "5").replace(/鈶�/g, "6")
        .replace(/鈶�/g, "7").replace(/鈶�/g, "8").replace(/鈶�/g, "9")
        .replace(/a/g, "1").replace(/b/g, "2").replace(/c/g, "3")
        .replace(/d/g, "4").replace(/e/g, "5").replace(/f/g, "6")
        .replace(/g/g, "7").replace(/h/g, "8").replace(/i/g, "9")
        .replace(/j/g, "10").replace(/k/g, "11").replace(/l/g, "12")
        .replace(/m/g, "13").replace(/n/g, "14").replace(/o/g, "15");
}


/**
 * 鑾峰彇椤电爜杈撳嚭,浼樺厛elocationid,鍏舵pageRange,鏈€鍚庣敤fpagelpage鎷艰
 */
function getPageOutput(elocationId, pageRange, fpage, lpage, pageLength) {

    if (!isNull(elocationId)) {
        return elocationId;
    }

    if (!isNull(pageRange)) {
        return pageRange;
    }

    return outputPages(fpage, lpage, pageLength);
}


/**
 * 鏌ユ壘瀛楃涓蹭腑鍖呭惈瀛楃涓蹭釜鏁�
 *
 * @param str     鏂囨湰
 * @param findStr 瑕佹煡鎵剧殑瀛楃涓�
 * @param isInit  鏄惁鍐呴儴璋冪敤锛屾ā寮弔rue
 */
function stringNumbers(str, findStr, isInit) {
    var counter = 0;
    if (isInit) {
        counter = 0;
    }
    var findStrSize = findStr.length;
    if (str.indexOf(findStr) == -1) {
        return 0;
    } else if (str.indexOf(findStr) != -1) {
        counter++;
        stringNumbers(str.substring(str.indexOf(findStr) + findStrSize), findStr, false);
        return counter;
    }
    return 0;
}

/**
 * 鏁板瓧杞寚瀹氱紪鍙�
 * @param number
 * @returns {string}
 * @constructor
 */
function Number2ListItem(number) {
    if (isNull(number)) return "";
    var tmp = "0,&amp;#9312;,&amp;#9313;,&amp;#9314;,&amp;#9315;,&amp;#9316;,&amp;#9317;,&amp;#9318;,&amp;#9319;,&amp;#9320;,&amp;#9321;,&amp;#9322;," +
        "&amp;#9323;,&amp;#9324;,&amp;#9325;,&amp;#9326;,&amp;#9327;,&amp;#9328;,&amp;#9329;,&amp;#9330;,&amp;#9331;,&amp;#12881;,&amp;#12882;" +
        ",&amp;#12883;,&amp;#12884;,&amp;#12885;,&amp;#12886;,&amp;#12887;,&amp;#12888;,&amp;#12889;,&amp;#12890;,&amp;#12891;" +
        ",&amp;#12892;,&amp;#12893;,&amp;#12894;,&amp;#12895;,&amp;#12977;,&amp;#12978;,&amp;#12979;,&amp;#12980;,&amp;#12981;,&amp;#12982;,&amp;#12983;," +
        "&amp;#12984;,&amp;#12985;,&amp;#12986;,&amp;#12987;,&amp;#12988;,&amp;#12989;,&amp;#12990;,&amp;#12991;,(51),(52),(53),(54),(55),(56),(57),(58),(59)," +
        "(60),(61),(62),(63),(64),(65),(66),(67),(68),(69)," +
        "(70),(71),(72),(73),(74),(75),(76),(77),(78),(79)," +
        "(80),(81),(82),(83),(84),(85),(86),(87),(88),(89),(90)";
    var tmpIndex = tmp.split(",");
    if (number &gt; 90) {
        return "";
    }
    return tmpIndex[number];
}

/**
 * 杞崲浣滆€呯畝浠嬩腑鐨勯偖绠变负鍙偣鍑荤殑閭鍦板潃
 * 鏈塵ailto锛� 鏍囪瘑鐨勪笉杞崲
 *
 * @param input
 * @return
 */
function convertAuthorEmailHref(input) {

    //绌虹殑灏辩洿鎺ヨ繑鍥�
    if (isNull(input)) return input;

    //鍖呭惈mailto鐨勭洿鎺ヨ繑鍥�
    if (input.indexOf("mailto:") != "-1") return input;

    var emailHref = input;
    var reg = "[A-Za-z0-9\\u4e00-\\u9fa5]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+";

    try {
        var regSetting = allData.dic.excelAuthorEmailHrefConvert;
        if (!isNull(regSetting)) {
            reg = regSetting;
        }
    } catch (e) {
        console.log("鏂规硶convertAuthorEmailHref閿欒!瀛楀吀涓璭xcelAuthorEmailHrefConvert鏈厤缃�!!!")
    }


    var pattern = new RegExp(reg, 'g');                //缂栬瘧姝ｅ垯琛ㄨ揪寮�
    var list = input.match(pattern);
    if (!list) {
        return;
    } else {
        for (var i = 0; i &lt; list.length; i++) {
            var email = list[i];

            if (!isNull(email)) {
                emailHref = emailHref.replace(new RegExp(email, 'g'), "&lt;a href=\"mailto:" + email + "\"&gt;" + email + "&lt;/a&gt;");
            }
        }
    }

    return emailHref;
}

/**
 * 鏇挎崲琛ㄦ牸涓殑鍥剧墖璺緞
 * @param {*} content 琛ㄦ牸鍐呭
 * @param {*} article 鏂囩珷
 */
function repalceTableImg(content, article) {
    if (!content) {
        return;
    } else {
        var srcStart = ""
        if (article.articleState &amp;&amp; article.articleState != "") {
            srcStart = filePath + "journal/article/" + allData.journal.publisherId.toLowerCase() + "/newcreate/";
        } else {
            srcStart = filePath + "journal/article/" + allData.journal.publisherId.toLowerCase() + "/" + article.year + "/" + article.issue + "/";
        }
        return content.replace(/src="/g, 'src="' + srcStart);
    }
}

/**
 * 鍒ゆ柇鏄惁鏄暟瀛楃被鍨�
 */
function isNumber(obj) {
    return typeof parseInt(obj) === 'number' &amp;&amp; !isNaN(parseInt(obj));
}

/**
 * 鍘婚櫎鏅€氱┖鏍硷紙\s锛夈€佸埗琛ㄧ銆佹崲琛岀鍜� &amp;nbsp;锛堥潪鏂┖鏍硷級
 */
function removeSpacesAndNbsp(inputString) {
    // 浣跨敤姝ｅ垯琛ㄨ揪寮忓尮閰嶆櫘閫氱┖鏍笺€佸埗琛ㄧ銆佹崲琛岀鍜�&amp;nbsp;
    var regex = /[\s\u00A0]+/g;
    return inputString.replace(regex, '');
}

/**
 * 鏁板瓧杞甫鍦堢殑鏁板瓧锛屼粎鏀寔1-50锛�50鍚庣殑鏅€氬瓧绗﹂泦娌℃湁
 */
function arabicToCircledNumber(arabicNumber) {
    if (isNull(arabicNumber)) return "";
    if (arabicNumber &gt;= 1 &amp;&amp; arabicNumber &lt;= 50) {
        const circledNumbers = [
            '鈶�', '鈶�', '鈶�', '鈶�', '鈶�',
            '鈶�', '鈶�', '鈶�', '鈶�', '鈶�',
            '鈶�', '鈶�', '鈶�', '鈶�', '鈶�',
            '鈶�', '鈶�', '鈶�', '鈶�', '鈶�',
            '銐�', '銐�', '銐�', '銐�', '銐�',
            '銐�', '銐�', '銐�', '銐�', '銐�',
            '銐�', '銐�', '銐�', '銐�', '銐�',
            '銑�', '銑�', '銑�', '銑�', '銑�',
            '銑�', '銑�', '銑�', '銑�', '銑�',
            '銑�', '銑�', '銑�', '銑�', '銑�'
        ];
        return circledNumbers[arabicNumber - 1];
    } else {
        return arabicNumber.toString(); // 瓒呭嚭鑼冨洿鐨勬暟瀛楀師鏍疯繑鍥�
    }
}

/**
 * 杩囨护鏂囩珷鐨勪綔鑰咃紝鎶婃枃绔犵殑鑻辨枃浣滆€卆uthorEnList杩藉姞鍒癮rticle涓�
 */
function articleAuthors2AhthorsEn(article) {
    if (article &amp;&amp; article.authors &amp;&amp; article.authors.length) {
        article.authorEnList = [];
        $.each(article.authors, function (i, author) {
            if (author.authorNameEn) {
                article.authorEnList.push(author);
            }
        })
    }
    return article;
}
/**
 * 杩囨护鏂囩珷鐨勪綔鑰咃紝鎶婃枃绔犵殑涓枃浣滆€卆uthorCnList銆佽嫳鏂囦綔鑰卆uthorEnList杩藉姞鍒癮rticle涓�
 */
function articleAuthors2AuthorsCnOrAuthorsEn(article) {
    if (article &amp;&amp; article.authors &amp;&amp; article.authors.length) {
        article.authorCnList = [];
        article.authorEnList = [];
        $.each(article.authors, function (i, author) {
            author.authorNameEn ? article.authorEnList.push(author) : '';
            author.authorNameCn ? article.authorCnList.push(author) : '';
        })
    }
    return article;
}
/**
 * 杩囨护鏂囩珷鐨刱eywords锛屾妸鏂囩珷鐨勪腑鏂囦綔鑰卥eywordsCnList銆佽嫳鏂囦綔鑰卥eywordsEnList杩藉姞鍒癮rticle涓�
 */
function articleKeyword2KeywordCnOrKeywordEn(article) {
    if (article &amp;&amp; article.keywords &amp;&amp; article.keywords.length) {
        article.keywordCnList = [];
        article.keywordEnList = [];
        $.each(article.keywords, function (i, keyword) {
            keyword.keywordEn ? article.keywordEnList.push(keyword) : '';
            keyword.keywordCn ? article.keywordCnList.push(keyword) : '';
        })
    }
    return article;
}
/**
 * 杞箟瀛楃涓蹭腑鐨勫崟寮曞彿銆佸弻寮曞彿
 */
function escapeString(str) {
    if (str) {
        return str.replace(/[\"\']/g, function (match) {
            switch (match) {
                case '\"': return '&amp;quot;';
                case "\'": return '&amp;#39';
            }
        });
    }
}

if (!String.prototype.replaceAll) {
    String.prototype.replaceAll = function (str, newStr) {
        // If a regex pattern
        if (Object.prototype.toString.call(str).toLowerCase() === '[object regexp]') {
            return this.replace(str, newStr);
        }
        // If a string
        return this.replace(new RegExp(str, 'g'), newStr);
    };
    template.defaults.imports.replaceAll = String.prototype.replaceAll;
}

/**
 * 鏇挎崲鍐呭涓殑鍥剧墖璺緞
 */
function replaceImg(context, path) {
    if (context &amp;&amp; path) {
        // 鍒涘缓涓€涓鍒欒〃杈惧紡锛屽尮閰�&lt;img src="..."&gt;涓殑src灞炴€�
        var regex = /&lt;img\s+src="([^"]+)"/g;

        // 閫氳繃寰幆鍖归厤鎵€鏈夌殑&lt;img&gt;鏍囩锛屽苟鏇挎崲鍏朵腑鐨剆rc灞炴€�
        var updatedContext = context;
        var match = regex.exec(context);
        while (match !== null) {
            var originalSrc = match[1];
            var replacement = '&lt;img src="' + path + originalSrc + '"';
            updatedContext = updatedContext.replace('&lt;img src="' + originalSrc + '"', replacement);
            match = regex.exec(context);
        }

        return updatedContext;
    }
}

if (typeof Object.assign !== 'function') {
    Object.defineProperty(Object, 'assign', {
        value: function (target) {
            'use strict';
            if (target == null) {
                throw new TypeError('Cannot convert undefined or null to object');
            }

            var to = Object(target);

            for (var index = 1; index &lt; arguments.length; index++) {
                var nextSource = arguments[index];

                if (nextSource != null) {
                    for (var nextKey in nextSource) {
                        if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {
                            to[nextKey] = nextSource[nextKey];
                        }
                    }
                }
            }
            return to;
        },
        writable: true,
        configurable: true
    });
}
/**
 * 瀵逛綔鑰呬腑鐨勯€氳浣滆€呬互閫氳浣滆€呯殑correspSort鎺掑簭锛屽鏋滄病鏈夛紝鍒欓粯璁ゆ帓搴�
 * @param {*} authors 浣滆€呮暟缁�
 */
function sortCorresper(authors) {
    if (!authors) return authors;
    var itemsWithIndex = [];
    var itemsWithoutIndex = [];

    for (var i = 0; i &lt; authors.length; i++) {
        var item = authors[i];
        if (typeof item.correspSort !== 'undefined') {
            itemsWithIndex.push(item);
        } else {
            itemsWithoutIndex.push(item);
        }
    }

    itemsWithIndex.sort(function (a, b) {
        return a.correspSort - b.correspSort;
    });

    return itemsWithIndex.concat(itemsWithoutIndex);
}

/**
 * 鏍￠獙妫€绱㈣瘝杈撳叆鐘舵€�
 * @return
 */
function checkSearchNew(form) {
    var searchText = $(form).find("input[name='q']").val().replace(" ", "");
    if (isNull($("#language").val()) || $("#language").val() == "cn") {
        if (typeof (searchText) == "undefined" || searchText == "" || searchText == "璇疯緭鍏ユ绱㈣瘝锛�") {
            alert("璇疯緭鍏ユ绱㈣瘝锛�");
            return false;
        } else {
            if ($(".formToken").length &amp;&amp; $(".formToken").val() != "") {
                return true;
            }
        }
    } else if ($("#language").val() == "en") {
        if (typeof (searchText) == "undefined" || searchText == "" || searchText == "Please enter the search word") {
            alert("Please enter the search word");
            return false;
        } else {
            if ($(".formToken").length &amp;&amp; $(".formToken").val() != "") {
                return true;
            }
        }
    }
    return false;
}

function kb2Mb(value) {
    var n = 1;
    if (typeof value === 'number' &amp;&amp; !isNaN(value) &amp;&amp; value != 0) {
        return Math.round(value / 1024 * Math.pow(10, n)) / Math.pow(10, n);
    } else {
        return 0;
    }
}

/**
 * doi寮曟枃杞琧str寮曟枃
 * @param {*} doiCitation doi寮曟枃
 * @param {*} CSTR CSTR鍙凤紝涓€鑸彲鐩存帴浣跨敤doi鍙�
 * @return CSTRCitation
 */
function doiCitation2CSTRCitation(doiCitation, CSTR) {

    // 灏嗗瓧绗︿覆鍖呰９鍦ㄤ竴涓复鏃剁殑 div 涓�
    var $doicitation = $('&lt;div&gt;' + doiCitation + '&lt;/div&gt;');

    // 浣跨敤 jQuery 閫夋嫨鍣ㄨ幏鍙� a 鏍囩
    var $a = $doicitation.find('a');
    if ($a.length &gt; 0) {
        var href = $a.attr('href');
        var text = CSTR ? CSTR : $a.text();

        if (href.includes('doi')) {
            var cstrHref = 'https://www.cstr.cn/' + text;

            // 鏇存柊 a 鏍囩鐨� href 鍜屾枃鏈�
            $a.attr('href', cstrHref);
            $a.text(text);

            // 鏇挎崲 "DOI:" 涓� "CSTR:"
            $doicitation.html($doicitation.html().replace('DOI:', 'CSTR:'));
        }
    }

    // 绉婚櫎涓存椂鐨� div 骞惰繑鍥炲鐞嗗悗鐨� HTML
    return $doicitation.html();
}

dayjs.extend(window.dayjs_plugin_relativeTime);
template.defaults.imports.filterHTMLTag = filterHTMLTag;
template.defaults.imports.startsWith = String.prototype.startsWith;
template.defaults.imports.endsWith = String.prototype.endsWith;
template.defaults.imports.trim = String.prototype.trim;
template.defaults.imports.split = String.prototype.split;
template.defaults.imports.fromCharCode = String.fromCharCode;
template.defaults.imports.isNull = isNull;
template.defaults.imports.convertLink = convertLink;
template.defaults.imports.isNotSupplementary = isNotSupplementary;
template.defaults.imports.getReferLinkHtml = getReferLinkHtml;
template.defaults.imports.isContainsByDoi = isContainsByDoi;
template.defaults.imports.replaceRegx = replaceRegx;
template.defaults.imports.referenceDOIReplace = referenceDOIReplace;
template.defaults.imports.convertMathHtml = convertMathHtml;
template.defaults.imports.delHTMLTag = delHTMLTag;
template.defaults.imports.convertAuthorEmailHref = convertAuthorEmailHref;
template.defaults.imports.outputPages = outputPages;
template.defaults.imports.repalceTableImg = repalceTableImg;
template.defaults.imports.convertAbstractHtml = convertAbstractHtml;
template.defaults.imports.isNumber = isNumber;
template.defaults.imports.removeSpacesAndNbsp = removeSpacesAndNbsp;
template.defaults.imports.arabicToCircledNumber = arabicToCircledNumber;
template.defaults.imports.articleAuthors2AhthorsEn = articleAuthors2AhthorsEn;
template.defaults.imports.articleAuthors2AuthorsCnOrAuthorsEn = articleAuthors2AuthorsCnOrAuthorsEn;
template.defaults.imports.articleKeyword2KeywordCnOrKeywordEn = articleKeyword2KeywordCnOrKeywordEn;
template.defaults.imports.escapeString = escapeString;
template.defaults.imports.encodeURIComponent = encodeURIComponent;
template.defaults.imports.decodeURIComponent = decodeURIComponent;
template.defaults.imports.replace = String.prototype.replace;
template.defaults.imports.replaceImg = replaceImg;
template.defaults.imports.JSON = JSON;
template.defaults.imports.sortCorresper = sortCorresper;
template.defaults.imports.kb2Mb = kb2Mb;
template.defaults.imports.doiCitation2CSTRCitation = doiCitation2CSTRCitation;</pre></body></html>