From 6b1a2761dc819b22da7b557c0656e1c6cd1e28d8 Mon Sep 17 00:00:00 2001 From: taijisanfeng Date: Wed, 10 Dec 2014 11:45:59 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20dom=EF=BC=8Cip=E8=BF=9E?= =?UTF-8?q?=E4=B8=AA=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit dom: 添加三函数 ip:添加网段相关函数 --- src/dom.js | 34 ++++++++++++++++++++++++++++++++++ src/ip.js | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 80 insertions(+) create mode 100644 src/ip.js diff --git a/src/dom.js b/src/dom.js index 05a6cf9..d6ddfab 100644 --- a/src/dom.js +++ b/src/dom.js @@ -27,4 +27,38 @@ function setValueByName(name, val) { return elems[i]; } } +} + +/** + * 获取元素的文本字符串 + * @param {[Element]} element 你要获取的元素 + * @return {[String]} 元素内包含的字符串 + */ +function getInnerText(element) { + return (typeof element.textContent == "string") ? element.textContent : element.innerText; +} + +/** + * 给 dom 插入文本 + * @param {[element]} element 元素 + * @param {[type]} text 你要插入的文本 + */ +function setInnerText(element, text) { + if (typeof element.textContent == "string") { + element.textContent = text; + } else { + element.innerText = text; + } +} + +/** + * 把一个可能包含 html 特殊字符的文本中,转换为安全的 HTML 字符串 + * @param {[type]} text 文本字符串 + * @return {[type]} 安全的 HTML 字符串 + */ +function getHtmlFromText(text) { + var divElem = document.createElement('span'); + + setInnerText(divElem, text); + return divElem.innerHTML; } \ No newline at end of file diff --git a/src/ip.js b/src/ip.js new file mode 100644 index 0000000..879195a --- /dev/null +++ b/src/ip.js @@ -0,0 +1,46 @@ +/** + * 从多个 IPV4 子网掩码中计算出代表最大子网的子网掩码 + * + * @param {[Array]} masks 子网掩码数组 + * + * @return {[type]} 最大代表最大子网的子网掩码。 + */ +function getMaxSubnet(masks) { + var len = masks.length, + ret = [255, 255, 255, 255], + i, j, tmp; + + for (i = 0; i < 4; i++) { + for(j = 0; j < len; j++) { + tmp = masks[j].split('.'); + + ret[i] = ret[i] & tmp[i]; + } + } + + return ret.join('.'); +} + +/** + * 判断两个 IPV4 地址是否在同一子网 + * @param {[String]} ip1 IPV4 地址 1 + * @param {[String]} ip2 IPV4 地址 2 + * @param {[String]} mask IPV4 子网掩码 + * + * @return {Boolean} 是否在同一子网 + */ +function isSameSubnet(ip1, ip2, mask) { + var ip1Arr = ip1.split('.'), + ip2Arr = ip2.split('.'), + maskArr = mask.split('.'), + i; + + for (i = 0; i < 4; i++) { + + if ((ip1Arr[i] & maskArr[i]) != (ip2Arr[i] & maskArr[i])){ + return false; + } + } + + return true; +}