2012-10-13 1 views
0

Я пытаюсь создать регулярное выражение для яваскрипта проекта, который охватывает каждую гиперссылку, которая начинается с «файл: //»Глядя на регулярное выражение, которое будет охватывать все «файл: //»

Спасибо :)

+3

/^ Файл: \/\ // там вы идете –

+1

если вы только тестирование содержимого HREF атрибута, делать, как говорит Асад. Если вы ищете файл: // urls в тексте, это совсем другой вопрос. Пожалуйста, уточните, что вы имеете в виду! –

ответ

0

гиперссылок имеют место Properties-

вы можете прочитать 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 
0

Вот очень тщательно версия, разработанная this парня:

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

EDIT: Очевидно, что мне нужно изменить несколько вещей, чтобы сделать его более строгим. Я обновил его. Если вы хотите использовать группы захвата, удалите?: Чтобы сохранить обратную ссылку.

Пожалуйста, используйте простой, /(file:\/{2,3}[!#$&-;=?-\[\]_a-z~]+)/

+0

Что это за 'www'? – Bergi

+0

фиксирует, использует ли url www или ww1 или доменное имя или что-то еще. см. ссылку для получения более подробной информации. –

+0

Только этот 'www' вряд ли будет частью * локального *' файла: // 'URI, не так ли? – Bergi

0

Попробуйте один

/^ (файл: //?). ([\ Да-z.-] +) ([. Аз] { 2,6}) ([/ \ ш .-] ) /? $/

Наслаждайтесь :)

+0

Спасибо! и я ищу префикс «file: //» в строке, и это сделает работу .. спасибо :) – user1322801

+0

Если это правильный ответ на ваш вопрос, отметьте это как ответ. :) – jomsk1e

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

Я бы не проверить больше, чем протокол, URI, являются очень сложными ,

Смежные вопросы