寻找涵盖每个“file://”的正则表达式

时间:2012-10-13 11:04:43

标签: javascript regex

我尝试为javascript项目创建一个正则表达式,涵盖以“file://”开头的每个超链接

谢谢:)

4 个答案:

答案 0 :(得分:0)

这是this家伙开发的非常全面的版本:

(?i)\b((?:file:(?:\/{2}))(?:www\d{0,3}[.]|[a-z0-9\-]+[.])?(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))

编辑:显然我需要改变一些事情以使其更严格。我已经更新了。如果要使用捕获组,请删除?:以保留反向引用。

请使用更简单的/(file:\/{2,3}[!#$&-;=?-\[\]_a-z~]+)/

答案 1 :(得分:0)

试试这个

/ ^(文件?://)?([\ da-z.-] +)。([az。] {2,6})([/ \ w .-] /?$ /

享受:)

答案 2 :(得分:0)

/^file\/\/:/i.test(str)
str.match(/^file\/\/:\S+/i)

我不会检查协议,URI非常复杂。

答案 3 :(得分:0)

超链接具有位置属性 -

您可以从链接中读取document.links [0] .protocol。

var links=document.links, L=links.length, filelinks=[];

while(L){
  if(links[--L].protocol=='file:')filelinks.push(links[L].href);
}

//eg:
filelinks.join('\n')


file:///C:/webworks/gallery/gallery.html
file:///C:/webworks/library/shared/dewey.html#holmes
file:///C:/webworks/library/shared/dewey.html#twain
file:///C:/webworks/library/shared/dewey.html