Replace - очиска от стоп слов
Есть скрипт, при обращении к которому по адресу, с любым ключевым словом (к примеру вот так: 1.php?q=скачать игру бесплатно)
должен вывести на странице этот ключевой запрос, очистив его от стоп слов(скачать и бесплатно) Скрипт выводит запрос но не чистит его. как мне правильно написать функцию replace в моем случае. Или в decodeURI проблема? Как правильно сделать? Вот скрипт: <script> parts=String(document.location).split("?",2)[1].split("&"); GET={}; for (i=0; i<parts.length;>.split('='); GET[curr[0]] = curr[1]; } var str = decodeURI(GET['q']); var result = str.replace("скачать", "бесплатно"); document.write(result); </script> |
Sverhchelovek,
Приведите образцы: Исходной входной строки и итоговой Выходной, - какой она должна быть после обработки |
Входная: q=скачать игру бесплатно
Выходная: игру |
Цитата:
q= - Убираем ? |
Цитата:
|
Пробелы заменяются на вот такие символы: %20
т.е. входящий урл вот такой получается: 1.php?q=скачать%20игру%20бесплат но |
var StopWord=["скачать", "бесплатно"]; // Массив исключений function ClearStWrd(a,b){ a=a.replace(/.*\?q=/i,'').replace(/%20/ig," "); var rega; for(var i=0; i<b.length; i++){ reg=new RegExp('\s*'+b[i],'gi'); a=a.replace(reg,'') } return a.replace(/^\s*/i,''); } var a='1.php?q=скачать%20игру%20бесплатно'; alert(ClearStWrd(a,StopWord)); var a='2.php?q=кинофильм%20Чапаев%20скачать%20бесплатно'; alert(ClearStWrd(a,StopWord)); |
Наверно не правильно меня поняли, "2.php?q=" - это имя фаила с приставкой q= а далее сам запрос, т.е. скачать%20игру%20бесплатно он и будет входящим.
Что-то так и не получается с вашим примером. Вот пример работы изначального скрипта: http://nice-vds.biz/111.php?q=%D0%BB...B0%D1%82%D1%8C Он выводит на страницу но не исключает стоп слова. Предпологаю что дело в кодировке запроса, т.к. если открыть исходный код, то кодировка запроса не та: view-source:http://nice-vds.biz/111.php?q=%D0%BB...B0%D1%82%D1%8C Как быть? Нужно как-то декадировать? Или другой вариант какой? |
Цитата:
Её нужно указывать в meta на странице <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru" dir="ltr"> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /> <script type="text/javascript"> var StopWord=["скачать", "бесплатно"]; // Массив исключений function ClearStWrd(a,b){ var r=a.replace(/.*\?q=/i,'').replace(/%20/ig," "); if(a!= r) a=r; else return ''; for(var i=0; i<b.length; i++){ var reg=new RegExp('\s*'+b[i],'gi'); a=a.replace(reg,'') } return a.replace(/^\s*/i,''); } var a=decodeURI(document.location) result = ClearStWrd(a,StopWord); document.write(result); </script> <title>Скрипт</title> </head> <body> </body> </html> |
Спасибо, большое разобрался заработало, после того как преобразовал в utf-8 без boom
|
Часовой пояс GMT +3, время: 01:11. |