「file://」で始まるすべてのハイパーリンクをカバーするjavascriptプロジェクトの正規表現を作成しようとしています。
ありがとう :)
これはこの男によって開発された非常に徹底的なバージョンです:
(?i)\b((?:file:(?:\/{2}))(?:www\d{0,3}[.]|[a-z0-9\-]+[.])?(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))
編集:明らかに、私はそれをより厳密にするためにいくつかのことを変更する必要がありました。更新しました。キャプチャグループを使用する場合は、?:を削除して、後方参照を保持します。
よりシンプルなものを使用してください、/(file:\/{2,3}[!#$&-;=?-\[\]_a-z~]+)/
これを試してみてください
/ ^(file?://)?([\ da-z .-] +)。( [az。] {2,6})([/ \ w .-] ) /?$ /
楽しみ :)
/^file\/\/:/i.test(str)
str.match(/^file\/\/:\S+/i)
プロトコル以外はチェックしません。URIは非常に複雑です。
ハイパーリンクには場所のプロパティがあります-
リンクから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