Понятно. а сколько может стоить такая работа?:)
|
Цитата:
<p id=sanika>dasdas[IMG]http://radikal.ru[/IMG]wqrwe[IMG]http://savepic.ru/[/IMG]53r25r[IMG]http://radikal.ru[/IMG][IMG]http://radikal.ru[/IMG]qw435643</p>
<script type="text/javascript">
//Допустимые Ссылки
var LnkValid = ["radikal.ru","savepic.ru"];
var pattern ="\\[img\\]([^\\]]*)\\[\\/img\\]";
var regexp = new RegExp(pattern,"img");
alert(regexp)
function ReadErr(){
alert("!Вставлены не поддерживаемые ресурсом ссылки на изображения.");
}
function bb(str){
function replacer(str, p1, offset, s){
var a=false;
for(var i in LnkValid){
if(p1.indexOf(LnkValid[i])!=-1){
a=true;break;
}
}
if(!a){str='[IMG]!!'+p1+'[/IMG]';}
return str;
}
var str2=str.replace(regexp,replacer)
return str2;
}
// - Тут поместить в переменную str тестируемую строку;
var str=document.getElementById('sanika').innerHTML
//Результат
var result=bb(str);
alert('result:\n'+result)
//Уведомление
if(result!=str){ReadErr();}
</script>
|
Спасибо большое! А то начал сам, но вот с регуляркой не мог разобраться. Буду учится дальше. Спасибо!
|
яваскрипт справится, но такие проверки нужно проводить на сервере
|
На сервере проверка на PHP сделана. :) Приведенный пример не заработал, я пошел другим путем, правда он не совсем корректно работает
<script language="javascript">
function proverka()
{
var text = document.getElementsByName("message")[0].value;
re = /\[IMG\](?=http\:\/\/img\.domen\.com\/|http\:\/\/www\.img\.domen\.com\/)(.*)*/i;
re1 = /\[IMG\](.+)*/i;
if ((text.match(re1)) && (!text.match(re)))
{
alert('Есть сторонний фотохостинг');
}else
{
alert('Все отлично');
}
}
</script>
</head>
<body>
<form id="form1" name="form1" method="post" action="#" onsubmit="return proverka() qr_prepare_submit()">
<table width="100%" border="0" cellpadding="2" cellspacing="2">
<tbody><tr>
<td><textarea name="message" cols="60" rows="7" id="message">[IMG]http://domen2.com/images/123.jpg[IMG]</textarea></td>
<td> </td>
</tr>
<tr>
<td><input name="Submit" value="Submit" onclick="return proverka()" type="submit"></td>
<td> </td>
</tr>
</tbody></table>
</form>
если введены только неверные адреса - срабатывает, если только верные - тоже ок, но если есть и те и другие - говорит что все правильно. а надо наоборот - выводить ошибку, и пока не знаю как ее решить :( |
всё очень просто
ты выуди все домены для картинок по регэкспе для любого uri-адреса со скобками на домене и проверь домен по белому списку(нужно циклически вызывать rx.exec и после вызова проверять домен, регулярку лучше создавать в данном случае с использованием new, регулярка для урлов есть в любой базе регулярок) можно с использованием реплейс, как посоветовал товарищ выше, но это семантически неверно |
Спасибо, буду пробовать. к сожалению с яваскриптом я не очень, трудно идет. спасибо за подсказку
|
sanika,
В исходном скрипте есть //Допустимые Ссылки var LnkValid = ["radikal.ru","savepic.ru"]; В Вашем же Варианте - их нет |
Стыдно, но этот код очень сложен для меня :(
|
Цитата:
var LnkValid = ["radikal.ru","savepic.ru"]; (Можно добавлять/изменять Код вродь полностью готовый |
| Часовой пояс GMT +3, время: 15:02. |