工具篇3

记录下日常开发有用到或封装的函数

Posted by Wason on September 16, 2019

工具篇 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'),'&amp;')
  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