Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #31 (permalink)  
Старый 25.05.2012, 12:39
Интересующийся
Отправить личное сообщение для sanika Посмотреть профиль Найти все сообщения от sanika
 
Регистрация: 25.05.2012
Сообщений: 11

Понятно. а сколько может стоить такая работа?
Ответить с цитированием
  #32 (permalink)  
Старый 25.05.2012, 23:33
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от sanika Посмотреть сообщение
Можно ли на яваскрипте сделать проверку текста?
Например текст имеет включения - это хорошо, но если есть [IMG]........[/IMG] но не радикал а других хостингов - вывести алерт что есть ошибка. Реально так сделать или javascript не справится с такой задачей?
Что нибудь типо так:
<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>
Ответить с цитированием
  #33 (permalink)  
Старый 26.05.2012, 01:48
Интересующийся
Отправить личное сообщение для sanika Посмотреть профиль Найти все сообщения от sanika
 
Регистрация: 25.05.2012
Сообщений: 11

Спасибо большое! А то начал сам, но вот с регуляркой не мог разобраться. Буду учится дальше. Спасибо!
Ответить с цитированием
  #34 (permalink)  
Старый 31.05.2012, 17:36
Аватар для KOLANICH
Профессор
Отправить личное сообщение для KOLANICH Посмотреть профиль Найти все сообщения от KOLANICH
 
Регистрация: 22.11.2008
Сообщений: 277

яваскрипт справится, но такие проверки нужно проводить на сервере
Ответить с цитированием
  #35 (permalink)  
Старый 31.05.2012, 20:01
Интересующийся
Отправить личное сообщение для sanika Посмотреть профиль Найти все сообщения от sanika
 
Регистрация: 25.05.2012
Сообщений: 11

На сервере проверка на 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>&nbsp;</td>
    </tr>
    <tr>
      <td><input name="Submit" value="Submit" onclick="return proverka()" type="submit"></td>
      <td>&nbsp;</td>
    </tr>
  </tbody></table>
</form>


если введены только неверные адреса - срабатывает, если только верные - тоже ок, но если есть и те и другие - говорит что все правильно. а надо наоборот - выводить ошибку, и пока не знаю как ее решить
Ответить с цитированием
  #36 (permalink)  
Старый 31.05.2012, 20:40
Аватар для KOLANICH
Профессор
Отправить личное сообщение для KOLANICH Посмотреть профиль Найти все сообщения от KOLANICH
 
Регистрация: 22.11.2008
Сообщений: 277

всё очень просто
ты выуди все домены для картинок по регэкспе для любого uri-адреса со скобками на домене и проверь домен по белому списку(нужно циклически вызывать rx.exec и после вызова проверять домен, регулярку лучше создавать в данном случае с использованием new, регулярка для урлов есть в любой базе регулярок)

можно с использованием реплейс, как посоветовал товарищ выше, но это семантически неверно
Ответить с цитированием
  #37 (permalink)  
Старый 31.05.2012, 20:43
Интересующийся
Отправить личное сообщение для sanika Посмотреть профиль Найти все сообщения от sanika
 
Регистрация: 25.05.2012
Сообщений: 11

Спасибо, буду пробовать. к сожалению с яваскриптом я не очень, трудно идет. спасибо за подсказку
Ответить с цитированием
  #38 (permalink)  
Старый 31.05.2012, 20:52
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

sanika,
В исходном скрипте есть
//Допустимые Ссылки
var LnkValid = ["radikal.ru","savepic.ru"];

В Вашем же Варианте - их нет
Ответить с цитированием
  #39 (permalink)  
Старый 31.05.2012, 21:09
Интересующийся
Отправить личное сообщение для sanika Посмотреть профиль Найти все сообщения от sanika
 
Регистрация: 25.05.2012
Сообщений: 11

Стыдно, но этот код очень сложен для меня
Ответить с цитированием
  #40 (permalink)  
Старый 31.05.2012, 23:01
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от sanika
но этот код очень сложен для меня
Вам достаточно изменить ссылки на хост.name
var LnkValid = ["radikal.ru","savepic.ru"]; (Можно добавлять/изменять

Код вродь полностью готовый
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с регуляркой tazododu Общие вопросы Javascript 11 01.03.2010 09:42
помогите с регуляркой ... motoroller Элементы интерфейса 1 23.11.2009 22:01
помогите с регуляркой Holod Общие вопросы Javascript 1 19.08.2009 12:02
помогите задать селектор! mkrylov jQuery 2 28.06.2009 20:34
Помогите с регуляркой... alexKniaz AJAX и COMET 0 03.11.2008 01:16