2010-11-15 59 views
0

我需要使用jquery從文本中提取URL。Jquery從文本中提取URL

可以說我有sowhere頁面上的文本區域下面的代碼

<textarea rows="20" name="textarea" style="width:100%;"> 
    @techreport{blabl, 
    blabla = {}, 
    url = {http://server.com/thepdf.pdf}, 
    wrongurl ={http://server.com/thepdf2.pdf}, 
    blablabla = 1998, 
    blablablabla= {blablablablabla}} 
</textarea> 

我需要的URL,而只有URL內容 - 不wrongurl。

更新:它始終具有相同的結構,我只需要提取它一次,它總是在它前面有一個「url = {」。

+0

那麼,url和wrongurl究竟有什麼區別? – 2010-11-15 21:53:17

+0

@Pekka:如果我有賭注,我會說他是在正確的正則表達式之後。 – jAndy 2010-11-15 21:55:08

+0

它有前面的「url = {」 – Timur 2010-11-15 21:55:26

回答

2

這個怎麼樣

$(document).ready(function() { 

    $('#click').click(function(){ 

var one = document.getElementById('one');  
    one.value.match(/url ={([^}]*)}/,""); 
    alert(RegExp.$1); 


    })  
}) 

或可運行演示 http://jsfiddle.net/PePS7/10/

哎呀,有點晚了比賽,但ammended的例子和的jsfiddle,只顯示URL

+0

好,但他只想要url,而不是「= {」和所有的東西。將我的正則表達式應用於您的代碼,我認爲我們有一個勝利者。 – 2010-11-15 22:03:12

+0

太棒了,它幾乎是我想要的,除了它也讓我的網址= { – Timur 2010-11-15 22:07:05

+0

謝謝,明白了。 http://jsfiddle.net/q2DbV/3/ – Timur 2010-11-15 22:11:59

0

你將需要做一些註冊如此。如果我對他們更好,我會爲你寫一篇。

+0

我真的需要正則表達式,如果我知道我的網址總是有「url = {」在前面? – Timur 2010-11-15 21:57:54

0

的jQuery贏得」不要這樣做,你正在尋找一個正則表達式來從這個textarea的'url'屬性中提取URL。你可以用下面的正則表達式做到這一點:

/url = \{(.+)\}/.exec(textarea_str)[1]

+0

這不會工作,JavaScript忽略行跳(如果有的話)如此它會選擇一切從{在url之後直到最後} – Juan 2010-11-15 22:07:00

0

做的最簡單的辦法是使用正則表達式,像其他人已經指出。

/url = \{([^}]*)\}/ 

該正則表達式應該這樣做。

+0

偉大,謝謝! http://jsfiddle.net/q2DbV/3/ – Timur 2010-11-15 22:11:20