UNPKG

unserver-unify

Version:

109 lines (108 loc) 3.37 kB
angular.module('bamboo.common').service('regexHelper', regexHelper); regexHelper.$inject = []; function regexHelper() { var self = this; //extract img from html string var regex_extract_img = /<img[^>]*src="([^"]*)"/g; //var regex_extract_img = /<img.*?src="(.*?)"/; function extractRegex(str, regex) { var arr, outp = []; while ((arr = regex.exec(str))) { outp.push(arr[1]); } return outp; } /** * extractImgfromStr * @param {string} str * @return {arr} */ self.extractImgfromStr = function(str) { extractRegex(str, regex_extract_img); } self.getSrcFromImg = function(imgData) { var tmp = document.createElement('div'); tmp.innerHTML = imgData; console.log(tmp); var src = tmp.querySelector('img').getAttribute('src'); return src; } /** * changeImgSrc * @param {dataURL} imgData * @param {string} newSrc url * @return {dataUrl} */ self.changeImgSrc = function(imgData, newSrc) { var tmp = document.createElement('div'); tmp.innerHTML = imgData; var src = tmp.querySelector('img').src = newSrc; //return tmp.childNodes[0].html(); return tmp.innerHTML; } self.getImgByUrl = function(url) { var img = new Image(); img.src = url; return img; } self.replaceMultiSpaceWithsingle = function(str) { return str.replace(/\s\s+/g, ' '); } //Based on http://www.samliew.com/icval/ self.validateNRIC = function(str) { if (str.length != 9) return false; str = str.toUpperCase(); var i, icArray = []; for (i = 0; i < 9; i++) { icArray[i] = str.charAt(i); } icArray[1] = parseInt(icArray[1], 10) * 2; icArray[2] = parseInt(icArray[2], 10) * 7; icArray[3] = parseInt(icArray[3], 10) * 6; icArray[4] = parseInt(icArray[4], 10) * 5; icArray[5] = parseInt(icArray[5], 10) * 4; icArray[6] = parseInt(icArray[6], 10) * 3; icArray[7] = parseInt(icArray[7], 10) * 2; var weight = 0; for (i = 1; i < 8; i++) { weight += icArray[i]; } var offset = (icArray[0] == "T" || icArray[0] == "G") ? 4 : 0; var temp = (offset + weight) % 11; var st = ["J", "Z", "I", "H", "G", "F", "E", "D", "C", "B", "A"]; var fg = ["X", "W", "U", "T", "R", "Q", "P", "N", "M", "L", "K"]; var theAlpha; if (icArray[0] == "S" || icArray[0] == "T") { theAlpha = st[temp]; } else if (icArray[0] == "F" || icArray[0] == "G") { theAlpha = fg[temp]; } return (icArray[8] === theAlpha); } self.html2DivDom = function(htmlstr) { var tmp = document.createElement('div'); tmp.innerHTML = htmlstr; return tmp; } // will skip <td> var skipArr = ['TD','TR','TH','TABLE','THEAD','TFOOT','TBODY']; self.clearDomStyle = function(dom) { if(!dom) return; var styleElems = dom.querySelectorAll('[style]'); angular.forEach(styleElems, function(el, idx) { console.log(el.nodeName); if(skipArr.indexOf(el.nodeName) < 0){ el.style = undefined; } }); return dom; } self.clearHtmlStrStyle = function(str) { if(!str) return; if(!angular.isString(str)) return str; var dom = self.html2DivDom(str); self.clearDomStyle(dom); return dom.innerHTML; } }