工具篇 3
记录下日常开发有用到或封装的函数
12.在多行字符串A中截取中间部分字符串
字符串A 是一段xml文件内容的text文本(strA),截取其中绿色框的内容

截取的正则式 strA.match('<MTSAT3/SDTC_x2M def_setting="(.+?)" />’)
得到的结果是:
则再取1即可 strA.match('<MTSAT3/SDTC_x2M def_setting="(.+?)" />’)[1],得到

考虑到灵活性,也可把会改变的抽离出来:
strA.match(`<${imageTypeData} def_setting=”(.+?)” />`)[1]
13.计算某一日期是星期几
当我们知道某一’yyyy-mm-dd’日期时便可以计算出当前是星期几,公式如下:
W= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400) mod 7
在公式中d表示日期中的日数,m表示月份数,y表示年数。(其中mod意思是取余计算,js用的是%)
举个栗子:
function s(str){
var y = parseInt(str.split('-')[0])
console.log(str.split('-'))
var m = parseInt(str.split('-')[1])
var d = parseInt(str.split('-')[2])
var W= parseInt((y + y /4 + y / 400 - y / 100 + 2 * m + 3 * (m + 1)/5 + d) % 7)
console.log(W)
}
s('2019-07-10’)
日期数值对应
0-6 对应于 周日-周六
14.读取xml文件
一般读取正常的xml文件,仅需用ajax,并设置datatype: html,即可读取
但如果xml文件含有特殊字符,则需做另一种处理
①先用ajax,并设置dataType: “text”, 已文本的形式读取出xml文件内容
②再通过下面方法,把xml字符文本 转为 xml 格式即可
③需要把xml文本中的 ‘&’ 转换为 实体。参考文章: xml 转义特殊字符
//字符串转化为xml
function toXmlDom(str){
var xmlDoc = null;
var source = ''
source = str.replace(new RegExp('&','g'),'&')
if (window.ActiveXObject) {
var ARR_ACTIVEX = ["MSXML4.DOMDocument","MSXML3.DOMDocument","MSXML2.DOMDocument","MSXML.DOMDocument","Microsoft.XmlDom"];
var XmlDomflag = false;
for (var i = 0;i < ARR_ACTIVEX.length && !XmlDomflag ;i++) {
try {
var objXML = new ActiveXObject(ARR_ACTIVEX[i]);
xmlDoc = objXML;
XmlDomflag = true;
} catch (e) {
}
}
if (xmlDoc) {
xmlDoc.async = false;
xmlDoc.loadXML(source);
}
}else{
var parser=new DOMParser();
var xmlDoc=parser.parseFromString(source,"text/xml");
}
return xmlDoc;
}
To be continued