如何使用jQuery从纯文本中提取URL?

我是jQuery的初学者。

我只是想将一个文本块传递给一个函数并返回一个包含在其中的url数组。

“我需要从文本中获取像http://www.something.com这样的url ,如果有更多的网站 ,那么也要抓住它们”。

有帮助吗? 有.GetUrl()吗?

注意:我用正则表达式吮吸!

jQuery Wiki Text插件(​​http://www.kajabity.com/jquery-wikitext/)包含正则表达式,用于在文本中查找可用于此目的的URls。

所以,你要求一个function – 这里它是:

/** * A utility function to find all URLs - FTP, HTTP(S) and Email - in a text string * and return them in an array. Note, the URLs returned are exactly as found in the text. * * @param text * the text to be searched. * @return an array of URLs. */ function findUrls( text ) { var source = (text || '').toString(); var urlArray = []; var url; var matchArray; // Regular expression to find FTP, HTTP(S) and email URLs. var regexToken = /(((ftp|https?):\/\/)[\-\w@:%_\+.~#?,&\/\/=]+)|((mailto:)?[_.\w-]+@([\w][\w\-]+\.)+[a-zA-Z]{2,3})/g; // Iterate through any URLs in the text. while( (matchArray = regexToken.exec( source )) !== null ) { var token = matchArray[0]; urlArray.push( token ); } return urlArray; } 

希望能帮助到你。

RegExp可能是要走的路,这应该是你的诀窍:

 var searchText = $('yourElement').text(), // urls will be an array of URL matches urls = searchText.match(/\b(http|https)?(:\/\/)?(\S*)\.(\w{2,4})\b/ig); // you can then iterate through urls for (var i = 0, il = urls.length; i < il; i++) { // do whatever with urls[i] } 

见演示→

您将不得不使用正则表达式。 尝试:

 /\i\b(http|https):\/\/(\S*)\b/i 

如果你不熟悉正则表达式,我建议你看一下这个在线工具来构建它们: http : //rubular.com/ 。

试试这个以获得所有类型的链接

http://aaa.aaa.aaa

http://www.aaa.aaa

http://www.aaa.aaa/aaa

string.match(/(万维网| HTTP | HTTPS | FTP | FTPS):/ / [A-ZA-Z0-9 – ] + [A-ZA-Z] {2,3}(/????。 \ S *)/ GI)?;