在js中拆分一个模式不匹配的字符串?

时间:2010-10-28 19:36:44

标签: javascript regex

我正在尝试拆分模式不匹配的TextArea值

文字如下:

Some Good Tutorials
http://a.com/page1
http://a.com/page2
Some Good Images
http://i.com/p1
http://i.com/p2
Some Good Videos
http://m.com/p1
http://m.com/p2

现在我想只从文本中获取链接,所以更好的解决方案是将整个字符串拆分为一个字符串数组,其中a行不是url然后从这个数组中拆分每个字符串“\ N“

修改

好吧,我找到了一个解决方案,我可以找到不以http://或https://开头的行,并用一个好的占位符替换它们之后我可以获得链接 虽然我在正则表达式中很弱,所以有人可以告诉我如何在javascript中执行此操作吗?

2 个答案:

答案 0 :(得分:2)

匹配模式。不要与它分开。

值= value.match(/ HTTP \:\ / \ /.+/克)

(。+将所有内容匹配到行尾)

答案 1 :(得分:0)

终于解决了!这是代码:

function split_lines() {
    var oText = $('linkTxtArea').value;
    removeBlankLines(); // a helper function to remove blank lines
    oText = oText.split("\n"); // first split the string into an array
    for (i = 0; i < oText.length; i++) // loop over the array
    {
        if (!oText[i].match(/^http:/)) // check to see if the line does not begins with http:
        {
            oText[i] = oText[i].replace(oText[i], "!replaced!"); // replace it with '!replaced!'
        }
    }
    oText = oText.toString().split("!replaced!"); // now join the array to a string and then split that string by '!replaced!'
    for (i = 1; i < oText.length; i++)
    {
        oText[i] = oText[i].replace(/^,/,"").replace(/,$/,""); // there were some extra commas left so i fixed it
    }
    return oText;
}