//獲取字符串中的url極其下標索引 function getHttpUrlArray(s) { var s1 = s.match(/http.*/); if(s1 == null) { return null; } var yuan = s; var url = []; var i=0; var indexArray = new Array(length); while(s1 != null) { var indexInL = { first: 0, last: 0, url: "" }; //獲取下標索引 var index = s1.index; //如果是第一個,加入 if(i == 0) { indexInL.first = index; } else { indexInL.first = index; } //查找之后的第一個漢字 //獲取其下標索引 var s2 = s1[0].match(/[\u4e00-\u9fa5]/); //若漢字存在 if(s2 != null) { var noIndex = s2.index; //如果是第一個,直接加入 if(i == 0) { indexInL.last = noIndex + index; } else { indexInL.last = noIndex + index; } //取得url indexInL.url = s1[0].substring(0, noIndex); s = s.substring(noIndex + index); s1 = s.match(/http.*/); } else { //如果是第一個,直接加入 if(i == 0) { indexInL.last = yuan.length; } else { indexInL.last = yuan.length; } s = s.substring(index); indexInL.url = s; s1=null; } indexArray[i] = indexInL; i++; } return indexArray; }
比較笨,不會寫正則表達式,只好用笨方法了。。。
有時候我們會復制帶格式的內容,但是我們又需要將自己手寫的網址添加上解析出來,下面的是將復制的url過濾,只返回手動添加的url
function getHttpUrlArray(s) { var s0 = s.match(/http.*/); var s1 = s.match(/[^'"=]http.*/); console.log(s1) var yuan = s; var url = []; var i = 0; var indexArray =[]; var indexInL1 = { first: 0, last: 0, url: "" }; if(s0 != null) { if(s0.index == 0) { var s0end = s.match(/[\u4e00-\u9fa5<\s,,。;;]/); if(s0end != null) { indexInL1.first = 0; indexInL1.last = s0end.index; indexInL1.url = s.substring(0, s0end.index) } else { indexInL1.first = 0; indexInL1.last = s.length; indexInL1.url = s.substring(0, s.length) } indexArray[i] = indexInL1; i++; } } if(s1 == null && s0 == null) { return null; } else if(s1 == null && s0 != null) { return indexArray; } while(s1 != null) { console.log(s1) var indexInL = { first: 0, last: 0, url: "" }; //獲取下標索引 var index = s1.index; indexInL.first = index + 1; console.log("s1開始", index + 1) //查找之后的第一個漢字或結束標簽或,。;: //獲取其下標索引 var s2 = s1[0].substring(1).match(/[\u4e00-\u9fa5<\s,,。;;]/); //若漢字存在 if(s2 != null) { var noIndex = s2.index; indexInL.last = noIndex + index + 1; console.log("s2 結束", noIndex + index + 1) //取得url indexInL.url = s1[0].substring(1, noIndex + 1); s = s.substring(noIndex + index + 1); console.log("s的值 ", s) s1 = s.match(/[^'"=]http.*/); } else { //如果是第一個,直接加入 if(i == 0) { indexInL.last = s.length; } else { indexInL.last = s.length; } s = s.substring(index + 1); indexInL.url = s; console.log("url ", s) s1 = null; } indexArray[i] = indexInL; i++; } return indexArray; }