регексп ссылок
добрый день добрые люди)
есть рег /^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/ но он не работает так, как я хочу, находит абсолютно все ссылки, и даже a.bb поспринимает как ссылку, поэтому надо его изменить так, чтобы: http://site.com (или с https) - находил www.site.com, m.site.com и тому подобное - находил site.com - НЕ находил но если: site.com/blabla - находил если одним рег выражением это невозможно реализовать, пусть будет две, три.. но чтобы результат был таким, как описал спасибо заранее :) |
Цитата:
var re=[
/^((https?:\/\/)|(www\.))[a-z]+\.[a-z]+/,
/(^[a-z]+\.[a-z]+)(?=\/[a-z]+)/
];
var a=[
'http://site.com',
'https://site.com',
'www.site.com',
'site.com',
'site.com/blabla'
];
for (var i=0; i<a.length; i++) {
check(a[i]);
};
function check(Str) {
alert(Str+' = '+(re[0].test(Str)||re[1].test(Str)));
};
|
отлично, спасибо большое! то что нужно :)
|
ваша регулярка перестала работать если передать строку вроде "посетите мой сайт: http://site.com"; :/
я хочу проверить тексты на наличие ссылок (вроде которых упомянул выше), и если найдётся, то их в тексте заменить на <a>, а остальной текст не трогать, например строка выше должен стать "посетите мой сайт": <a href=\"http://site.com\">http://site.com</a>"; а код такой текст оставляет как есть, но если до ссылки ничего нет, текст идёт только после ссылки, то он берёт весь текст в тег <а> |
Цитата:
|
Такой вариант для работы с текстом...
var txt='посетите мой сайт: http:\/\/site.com или [url]www.site.com[/url]. Т.к. наш site.com самый лучший и в нем есть папочка site.com\/blabla...';
alert(check(txt));
function check(Str) {
var re=[
/(((https?:\/\/)|(www\.))[a-z]+\.[a-z]+)/g,
/([a-z]+\.[a-z]+\/[a-z]+)/g
];
for (var i=0; i<re.length; i++){
Str=Str.replace(re[i],'<a href="$1">$1<\/a>');
};
return Str;
};
P.S. BBкод (url) вставляет уже сам редактор... |
так, эта проблема решена) благодарю)
остался теперь заменить только совпадения на якорь, а не всю строку, и ещё, чуть не забыл, хочу исключить запятую, чтоб в "www.site.com," взял только саму ссылку, а то он и запятую включает :/ |
А так...
var txt='посетите мой сайт: http:\/\/site.com или www\.site\.com. Т.к. наш site.com самый лучший и в нем есть папочка site.com\/blabla...';
alert(check(txt));
function check(Str) {
var re=[
/(((https?:\/\/)|(www\.))[a-z]+\.[a-z]+)/g,
/([a-z]+\.[a-z]+\/[a-z]+)/g
];
for (var i=0; i<re.length; i++){
Str=Str.replace(re[i],'<a href="$1">$1<\/a>');
};
return Str;
};
|
Цитата:
var txt='посетите мой сайт: http:\/\/site.com или www\.site\.com, т.к. наш site.com самый лучший и в нем есть папочка site.com\/blabla...';
alert(check(txt));
function check(Str) {
var re=[
/(((https?:\/\/)|(www\.))[a-z]+\.[a-z]+)/g,
/([a-z]+\.[a-z]+\/[a-z]+)/g
];
for (var i=0; i<re.length; i++){
Str=Str.replace(re[i],'<a href="$1">$1<\/a>');
};
return Str;
};
|
пока писал, ответ уже дали :) огромное спасибо :) очень вам признателен)
|
| Часовой пояс GMT +3, время: 19:26. |