如何使用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/ 。
试试这个以获得所有类型的链接
string.match(/(万维网| HTTP | HTTPS | FTP | FTPS):/ / [A-ZA-Z0-9 – ] + [A-ZA-Z] {2,3}(/????。 \ S *)/ GI)?;