02.12.2011, 14:57
|
|
猫
|
|
Регистрация: 07.06.2007
Сообщений: 7,504
|
|
Сообщение от devote
|
вот ... мой:
var a = 'ссылка на карту google.ru.maps [url]http://maps.google.ru/maps/pre-fix/фыва[/url] бла тест'.
match( /((http(s)?:\/\/)|(www\.))([^\.]+)\.([^\s]+)/i );
alert(a[0]);
|
google.ru тоже ссылка без maps
Спасибо, добавил провеку на точку в конце:
var a='ссылка на карту google.ru.maps выф[url]http://maps.google.ru/maps/pre-fix/фыва[/url] бла тест'.match(/(http(s)?:\/\/)?(www\.)?([-.a-z0-9]+)\.(ru|com|net){1}((\/)+[-$_.,+=:;/?@&#%a-z0-9]+)?(\/|\b)/ig);
alert(a);
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
Последний раз редактировалось Gozar, 02.12.2011 в 14:59.
|
|
02.12.2011, 15:15
|
|
猫
|
|
Регистрация: 07.06.2007
Сообщений: 7,504
|
|
Твой вариант(найдена одна, ни одна из первых не найдена), также смотри на окончание
var a = 'ссылка на карту google.ru.maps maps.google.ru/maps/pre-fix/фыва бла тест ссылка на картуhttp://maps.google.ru/maps/place?q=59.944215,30.307012,блатест'.match( /((http(s)?:\/\/)|(www\.))([^\.]+)\.([^\s]+)/i );
alert(a);
Мой вариант(найдено три)
var a = 'ссылка на карту google.ru.maps maps.google.ru/maps/pre-fix/фыва бла тест ссылка на картуhttp://maps.google.ru/maps/place?q=59.944215,30.307012,блатест'.match(/(http(s)?:\/\/)?(www\.)?([-.a-z0-9]+)\.(ru|com|net){1}((\/)+[-$_.,+=:;/?@&#%a-z0-9]+)?(\/|\b)/ig);
alert(a);
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
|
|
02.12.2011, 15:33
|
что-то знаю
|
|
Регистрация: 24.05.2009
Сообщений: 5,176
|
|
ну просто я не учитываю ссылки которые без http:// или без www. так как по сути это не может расцениваться ссылкой... хоть и по читабельности оно так и есть... нашел он то что реально писано ссылкой... и окончание у меня нормальное... тоесть русские символы так же имеют право быть внутри юрл.. тоесть у меня все в ссылке до пробела... единственное что нужно запретить это перед ссылкой если нет пробела, то не считать ее ссылкой.
тоесть так не найдет:
var a = 'ссылка на карту google.ru.maps maps.google.ru/maps/pre-fix/фыва бла тест ссылка на картуhttp://maps.google.ru/maps/place?q=59.944215,30.307012,блатест'.match( /(?:^|[\s]+)((http(s)?:\/\/)|(www\.))([^\.]+)\.([^\s]+)/i );
alert(a);
а так найдет:
var a = 'ссылка на карту google.ru.maps maps.google.ru/maps/pre-fix/фыва бла тест ссылка на карту http://maps.google.ru/maps/place?q=59.944215,30.307012,блатест'.match( /(?:^|[\s]+)((http(s)?:\/\/)|(www\.))([^\.]+)\.([^\s]+)/i );
alert(a);
|
|
02.12.2011, 15:41
|
|
猫
|
|
Регистрация: 07.06.2007
Сообщений: 7,504
|
|
Сообщение от devote
|
единственное что нужно запретить
|
Запретить кому?
И почему должна быть запрещена ссылка вида
//'ссылка:http://ya.ru?'
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
|
|
02.12.2011, 15:42
|
что-то знаю
|
|
Регистрация: 24.05.2009
Сообщений: 5,176
|
|
Сообщение от Gozar
|
Запретить кому?
|
У меня в регулярке, сорри что не написал подробности... я в посте выше добавил в регу правило что бы перед ссылкой был либо пробел либо начало строки... Тоесть ссылка начинающая с "blahttp://" не может быть ссылкой, это показано в первом примере... а во втором стоит пробел перед ссылкой
|
|
02.12.2011, 15:42
|
что-то знаю
|
|
Регистрация: 24.05.2009
Сообщений: 5,176
|
|
Сообщение от Gozar
|
Запретить кому?
И почему должна быть запрещена ссылка вида//ссылка:http://ya.ru?
|
Хотя да, такие исключения могут быть, не спорю.
|
|
02.12.2011, 15:44
|
|
猫
|
|
Регистрация: 07.06.2007
Сообщений: 7,504
|
|
Видишь знак вопросика в конце ссылки?
У тебя также.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
|
|
02.12.2011, 15:51
|
|
猫
|
|
Регистрация: 07.06.2007
Сообщений: 7,504
|
|
Твой вариант:
var a = 'ссылка на карту бла тест ссылка на эта ссылка: [url]http://maps.google.ru/maps/place?q=59.944215,30.307012?[/url] ,блатест'.match( /(?:^|[\s]+)((http(s)?:\/\/)|(www\.))([^\.]+)\.([^\s]+)/i );alert(a);
Баг форума, у тебя на самом деле возвращает тот же урл, но в конце у него знак вопроса.
Мой вариант:
var a = 'ссылка на карту бла тест ссылка на эта ссылка: [url]http://maps.google.ru/maps/place?q=59.944215,30.307012?[/url] ,блатест'.match(/(http(s)?:\/\/)?(www\.)?([-.a-z0-9]+)\.(ru|com|net){1}((\/)+[-$_.,+=:;/?@&#%a-z0-9]+)?(\/|\b)/ig);alert(a);
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
|
|
02.12.2011, 15:56
|
что-то знаю
|
|
Регистрация: 24.05.2009
Сообщений: 5,176
|
|
а что плохого в том что знак вопроса попал в ссылку? как мне говорит PHP тык он не против иметь хоть двадцать вопросов в ссылке, в переменной $_SERVER['REQUEST_URI'] отобразить хоть сотню... так что я могу спокойно писать сайт с учетом подобных ссылок.
|
|
02.12.2011, 15:56
|
|
猫
|
|
Регистрация: 07.06.2007
Сообщений: 7,504
|
|
зы: ты экранируешь точку в символьном классе:
[quote=devote;140366]
[^\.]
а зачем?
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
|
|
|
|