JS 獲取字符串中的url並返回其下標索引


//獲取字符串中的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;
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM