我尝试为javascript项目创建一个正则表达式,涵盖以“file://”开头的每个超链接
谢谢:)
答案 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