/**
* rhhz.js ---银河137浏览器前端插件js集合
* tools{
* subTextMax:文本内容按长度设置截取,
* menuView:按照页面设置进行页面菜单对应高亮
* }
* function{
* hasChinese:判断当前对象中是否包含中文字符,
* trim:解决IE 对jquery Trim方法的兼容性,
* startWith:判断当前对象是否以字符开始,
* endWith:判断字符串是否以字符结束,
* getFileUrl:获取本地资源文件的路径,
* preImg:预览本地图片,
* getUrlParam:获取URL参数列表,
* getRefSupIndex:获取参考文献引用索引,
* isNull:判断对象是否为空,
* formatDateToEn:将日期转换成英文格式 2016-1-1 --> 01 Jan 2016
* GetRandomNum:获取随机数
* dateStr:获取网页顶部显示需要的日期信息 参数,type 1:中文 2英文 3英文简写 ( 2017-1-11 星期三; Wednesday, 11 January, 2017 ;Jan 20th, Wednesday
* shareTools(type,obj):分享工具,qzone,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',//默认处理内容为html标签,如设置为text会清除原有标签
keep_len: 10//默认截取保留10个字符,建议采用配置方式或者在标签中设置
};
//设置菜单高亮默认参数
var menuDefaults = {
defaultPage: 'index', //默认获取不到页面索引,设置为首页
pageViewId: 'pageViewId', //页面索引取值ID
hightLightTag: 'li', //需要设置高亮的标签
highLightClass: 'current', //当前页选中高亮class
pageRelAttr: 'rel_page', //菜单列表中索引属性标识
pageRelTag: 'li span' //菜单列表中索引取值标签,默认取text().trim(),pageRelTag和pageRelAttr不需要同时存在
}
$.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(/ /ig, '').replace(/\s+/g, ' ').replace(/\t|\r|\n/g, "").replace(' ', '').replace(/
/g, "
").trim();
//var contentText = $(this).text().replace(/ /ig, '').replace(/\s+/g, ' ').replace(/\t|\r|\n/g,"").trim();
var contentText = filterHTMLTag(contentHtml);
if (contentText.length > keepindex) {
//如果需要,可加title,title为全部文本内容
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 {
//对HTML标签内容进行截取分为四个步骤1存储原有标签 2按照text进行截取 3对截取后的text进行标签插入 4补全未闭合标签
//1.处理原有标签
//获取当前内容中的各个标签及所在位置
var rgx = /<[^<^>]+>/; //标签匹配正则
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(/<[^<^>]+>/) + contentHtml.match(/<[^<^>]+>/)[0].length;
contentHtml = contentHtml.substr(len);
index += len;
tags.push(t);
}
//2.截取text内容,上面已经截取过了
//3.填充原有标签
if (tags.length > 0) {
$.each(tags, function (i, e) {
if (e.index > 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 > 0) {
$.each(tags, function (i, e) {
//先将所有插入的标签放到插入和未闭合列表中
uncloseTags.push(e.tag);
insertTags.push(e.tag);
})
$.each(insertTags, function (i, e) {
//自闭合标签不需要补全,删除如
if (/<[^<^>^\/]+\/>/.test(e)) {
uncloseTags.splice($.inArray(e, uncloseTags), 1);
return true;
}
//对左标签进行闭合判断,如果同时存在一组左右标签,则同时删除即可,由于成组的删除,所以不用考虑多个对应一个
的情况,我们只需要按照顺序获取到未闭合的列表即可
if (/<[^<^>^\/]+>/.test(e)) {
var tagClosed = "";
if (e.indexOf(" ") > 0) {
tagClosed = "" + e.substring(1, e.indexOf(" ")) + ">";
} else {
tagClosed = "" + e.substring(1, e.length);
}
//同时存在闭合标签
if ($.inArray(tagClosed, uncloseTags) != -1) {
uncloseTags.splice($.inArray(e, uncloseTags), 1);
uncloseTags.splice($.inArray(tagClosed, uncloseTags), 1);
}
}
})
}
//此时uncloseTags已经是未闭合的标签列表了
//生成闭合标签,根据标签嵌套规则,右标签和左标签对应,如,所以先将未闭合标签数组逆序
if (uncloseTags.length > 0) {
var closeTagStr = "";
uncloseTags.reverse();
$.each(uncloseTags, function (i, e) {
if (e.indexOf(" ") > 0) {
closeTagStr += "" + e.substring(1, e.indexOf(" ")) + ">";
} else {
closeTagStr += "" + e.substring(1, e.length);
}
})
contentText += "..." + closeTagStr;
} else {
contentText += "...";
}
//拼接完成
$(this).html(contentText);
}
}
})
}
}(jQuery);
/**
* 自定义字符串结尾判定方法,以s结尾返回true,否则返回false
* @param s
* @return
*/
String.prototype.endWith = function (s) {
if (s == null || s == "" || this.length == 0 || s.length > this.length)
return false;
if (this.substring(this.length - s.length) == s)
return true;
else
return false;
return true;
}
/**
* 自定义字符串开始判定方法,以s开始返回true,否则返回false
* @param s
* @return
*/
String.prototype.startWith = function (s) {
if (s == null || s == "" || this.length == 0 || s.length > this.length)
return false;
if (this.substr(0, s.length) == s)
return true;
else
return false;
return true;
}
/**
* IE浏览器兼容jquery trim方法
* @return
*/
String.prototype.trim = function () {
return this.replace(/(^\s*)|(\s*$)/g, "");
}
/**
* 获取地址栏url参数
* @param name
* @return
*/
function getUrlParam(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
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, '&');
});
var refIndexs = [];
$.each(refSup.split(","), function (i, e) {
if (isNaN(e)) {
var startEnd = e.split("&");
var start = parseInt(startEnd[0]);
var end = parseInt(startEnd[1]);
for (var i = start; i <= 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) {
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 + "&title=" + title;
break;
case 'sina':
shareUrl = "http://service.weibo.com/share/share.php?title=" + title + "&url=" + url + "&pic=";
break;
case 'weixin':
shareUrl = local_host + "util/QrcodeServlet?url=" + url;
break;
case 'renren':
shareUrl = "http://widget.renren.com/dialog/share?resourceUrl=" + url + "&srcUrl=" + url + "&title=" + title + "&pic=&description=" + description;
break;
case 'google+':
shareUrl = "https://plus.google.com/share?url=" + url + "&t=" + title;
break;
case 'facebook':
shareUrl = "http://www.facebook.com/sharer.php?s=100&p[title]=" + title + "&p[summary]=" + description + "&p[url]=" + url + "&p[images]=";
break;
case 'linkedin':
shareUrl = "http://www.linkedin.com/shareArticle?armin=armin&ro=true&mini=true&url=" + url + "&source=&title=" + title + "&summary=" + description;
break;
case 'twitter':
shareUrl = "https://twitter.com/intent/tweet?text=" + title + "&url=" + url;
break;
default:
shareUrl = "http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?url=" + url + "&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(/<\/?[^>]*>/g, ''); //去除HTML Tag
msg = msg.replace(/[|]*\n/, ''); //去除行尾空格
msg = msg.replace(/ /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 && 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 && orderByCond.paramValue != "") {
conds.push(orderByCond);
}
}
/**
* 按索引获取内容中的正则匹配结果
* @param source 内容
* @param regx 正则表达式
* @param index 索引
* @returns {*|string} 索引位置的正则匹配结果
*/
function getMatcherByIndex(source, regx, index) {
var pattern = new RegExp(regx, 'g');
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.replaceAll("");
sourceStr = replaceRegx(sourceStr, "", "<[/]{0,1}multi_start[/]{0,1}>");
sourceStr = sourceStr.trim();
sourceStr = sourceStr.replaceAll("jlmText", "text");
//xdf20220615 兼容mml格式公式,剔除mml:
sourceStr = sourceStr.replaceAll("", "");
var tempStr = sourceStr;
if (sourceStr.indexOf(".*?");
tempStr = replaceRegx(tempStr, "", "");
tempStr = replaceRegx(tempStr, "", "");
tempStr = replaceRegx(tempStr, "", ".*?");
tempStr = replaceRegx(tempStr, "", "");
tempStr = replaceRegx(tempStr, "", "");
tempStr = tempStr.replaceAll("", "")
.replaceAll("\\begin{document}", "").replaceAll("\\end{document}", "")
.replaceAll("\\begin{equation} \\begin{CJK}{GBK}{song}", "")
.replaceAll("\\end{CJK} \\end{equation}", "")
.replaceAll("", "")
.replaceAll("", "")
.replaceAll("", "")
.replaceAll("", "").trim();
if (tempStr.startsWith("") && tempStr.endsWith("
")) {
tempStr = replaceRegx(tempStr, "", "\r\n\t");
tempStr = tempStr.replaceAll("", "").replaceAll("
", "").trim();
if (tempStr.startsWith("$") && !tempStr.startsWith("$$")) {
tempStr = "$" + tempStr + "$";
}
}
//如果是公式图片,直接图片输出
if (sourceStr.indexOf("graphic ") !== -1) {
var result = "";
if (sourceStr.indexOf("
";
} else {
result = tempStr + "
";
}
result = convertLink(result);
return result;
}
} else if (sourceStr.indexOf("[\\s\\S]*?)", "g");
var results = sourceStr.match(pattern);
for (var i = 0; i < results.length; i++) {
currentMath = results[i]
var imgSrc = getMatcherByIndex(currentMath, "xlink:href=\"(.*?)\"", 0);
var textMathStr = getMatcherByIndex(currentMath, "([\\s\\S]*?)", 0);
var textMath = textMathStr;
textMath = replaceRegx(textMath, "", "");
textMath = replaceRegx(textMath, "", ".*?");
textMath = replaceRegx(textMath, "\\$", "\\$((\n)|[ ])*\\$");
textMath = replaceRegx(textMath, "", ".*?");
textMath = replaceRegx(textMath, "", "");
textMath = replaceRegx(textMath, "", "");
textMath = textMath.replaceAll("\\begin{document}", "$")
.replaceAll("\\end{document}", "$")
.replaceAll("\\begin{equation} \\begin{CJK}{GBK}{song}", "$")
.replaceAll("\\end{CJK} \\end{equation}", "$")
.replaceAll("", "");
var mathId = getMatcherByIndex(currentMath, "", 0);
mathId = replaceRegx(mathId, "", "");
if (!isNull(imgSrc)) {//有图片时将图片隐藏后输出
var imgTag = "" + textMath
+ "
";
sourceStr = sourceStr.replaceAll(textMathStr, imgTag);
} else {
sourceStr = sourceStr.replaceAll(currentMath, textMath);
}
}
if (!isNull(sourceStr)) {
tempStr = sourceStr;
tempStr = replaceRegx(tempStr, "", "");
tempStr = tempStr.replaceAll("", "");
tempStr = tempStr.replaceAll("\\begin{equation} \\begin{CJK}{GBK}{song}", "")
.replaceAll("\\end{CJK} \\end{equation}", "");
tempStr = replaceRegx(tempStr, "", "");
tempStr = tempStr.replaceAll("", "");
tempStr = replaceRegx(tempStr, "", "");
tempStr = tempStr.replaceAll("", "");
if (tempStr.indexOf("") != -1) {
tempStr = replaceRegx(tempStr, "", ".*?");
}
tempStr = replaceRegx(tempStr, "", "");
tempStr = tempStr.replaceAll("", "").trim();
}
}
tempStr = convertLink(tempStr);
return tempStr;
}
/**
* 拼装参考文献链接
* @param source url或doi
* @param isIcon 是否展示为按钮
* @param type 类型:doi,url
* @returns {string} 拼装的a链接html
*/
function getReferLinkHtml(source, isIcon, type) {
var typeClass = 'ref-doi';
if (type == 'url') typeClass = 'ref-url'
var iconClass = '';
var show = source;
if (isIcon && isIcon == "true") {
iconClass = 'icon';
show = '';
}
var href = source;
if (type != 'url') href = 'http://doi.org/' + source;
return ' ' + show + '';
}
/**
* 获取参考文献的输出结果
* @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 {//未传入doi时,从内容中切出doi,然后转为链接并进行替换
var re = content.toUpperCase().replaceAll(" ", "");
var inner = re.indexOf("DOI:") + 4;
doi = content.replaceAll(" ", "").substring(inner);
if (doi.endsWith(".")) {
doi = doi.substring(0, doi.length - 1);
}
doiHtml = getReferLinkHtml(doi, isIcon, 'doi');
content = content.replaceAll(doi, doiHtml);
}
} else {//不包含doi:时
if (content.includes("doi.org") && content.includes(doi) && !isNull(doi)) {//doi的链接是带有doi.org的完整链接时,整条链接转a标签
var doiurl = content.substring(content.indexOf("http"), content.indexOf(doi));
doiHtml = " " + doiurl + doi + "";
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 + "" + " doi: ".toUpperCase() + doiHtml + "";
} else {
content = content + "" + " doi: ".toLowerCase() + doiHtml + "";
}
} else if (!isNull(url)) {//没有doi:,没有doi.org,没有传入doi的情况,一般不是doi而是其他链接,需要判断是否传入url
if (url.lastIndexOf("/10.") != -1) {//有传入url时,看看url是不是包含doi,如果是,则将doi切出,转为链接后拼装至内容尾部
doi = url.substring(url.lastIndexOf("/10.") + 1, url.length);
doiHtml = getReferLinkHtml(doi, isIcon, 'doi');
if ("U" == isUp) {
content = content + "" + " doi: ".toUpperCase() + doiHtml + "";
} else {
content = content + "" + " doi: ".toLowerCase() + doiHtml + "";
}
} else {//如果url不包含doi,按普通链接处理
doiHtml = getReferLinkHtml(url, isIcon, 'url');
content = content + doiHtml;
}
} else if (content.includes("http")) {//没有doi:,没有doi.org,没有传入doi和url的情况,但是内容中包含链接
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 results = content.match(pattern);
for (var i = 0; i < results.length; i++) {
var httpUrl = results[i];
if (!isNull(httpUrl) && httpUrl.endsWith(".")) {
httpUrl = httpUrl.substring(0, httpUrl.length() - 1);
}
doiHtml = getReferLinkHtml(httpUrl, isIcon, 'url');
content = content.replaceAll(httpUrl, doiHtml);
}
}
} catch (e) {
console.log("doi链接处理未配置!!!")
}
}
}
return content;
}
/**
* 半角转全角
*
* @param input 输入字符串参数
* @return string 全角字符串
*/
function convert2DoubleByte(input) {
var result = []
for (var i = 0; i < input.length; i++) {
var str = input[i];
var charStr = input.charCodeAt(i);
if (str == ' ') result.push('\u3000');
else if (charStr < 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 < input.length; i++) {
var str = input[i];
var charStr = input.charCodeAt(i);
if (str == '\u3000') result.push(' ');
else if (str > '\uFF00' && str < '\uFF5F') {
charStr = charStr - 65248;
result.push(String.fromCharCode(charStr));
}
}
return result.join('');
}
/**
* 判断是否为附图 附表
* @param tagId 图表的tagId
* @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);
return !isNull(matcher) || !isNull(matcher1);
}
/**
* 替换特殊字符
*/
function replaceXmlSpecialChar(sourceStr) {
if (isNull(sourceStr)) return "";
return sourceStr.replaceAll("©", "©")
.replaceAll("*", "*")
.replaceAll("—", "—")
.replaceAll(">", ">")
.replaceAll("<", "<");
}
/**
* 特殊字符输出转换
* @param input
* @returns {*|string}
*/
function convertInut(input) {
//(<)(&)(>)(")(')
//<,& >" ' (')
if (isNull(input)) return "";
input = input.replaceAll("&", "&")
.replaceAll("<", "<")
.replaceAll(">", ">")
.replaceAll("\"", """)
.replaceAll("'", "'");
return input;
}
/**
* 处理摘要内容
*
* @param str 摘要
* @param language 语言
* @return string 处理结果
*/
function convertAbstractHtml(str, language) {
if (isNull(str)) return "";
var secReplace = "";
var titleReplace = "";
str = str.replaceAll("", "").replaceAll("", "")
.replaceAll("", "").replaceAll("", "")
.replaceAll("", "").replaceAll("", "") //下划线
.replaceAll("", "").replaceAll("", "") //上划线
.replaceAll("", "").replaceAll("", "")//中划线、删除线
.replaceAll("", "").replaceAll("
", "")//p标签
.replaceAll("", ""); //空title
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错误!摘要中sec,title替换标签未配置!!!")
}
if (isNull(secReplace)) {//默认替换为div
str = str.replaceAll("", "").replaceAll("", "
");
} else {
var secReplaceArr = secReplace.split("\\$\\$\\$");
var secReplace1 = secReplaceArr[0];
var secReplace2 = secReplaceArr[1];
str = str.replaceAll("", secReplace1).replaceAll("", secReplace2);
}
if (isNull(titleReplace)) {//默认替换为b
str = str.replaceAll("中国·银河137浏览器(官方认证)网站入口-正版App Store下载", 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错误!字典中articleTypeTrans未配置!!!")
}
}
return "";
}
/**
* 获取参考文献格式 1顺序编码制 2作者出版年制
*/
function getReferenceType(refLable) {
return !isNull(refLable) && (/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 = "