Понятно. а сколько может стоить такая работа?:)
|
Цитата:
<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, время: 04:06. |