Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » JavaScript RegExp

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

andrey_fisher



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
помогите разобрать кусок кода:
 

Код:
 
if(typeof this.config.stripSelfNamedAnchors != 'undefined' && this.config.stripSelfNamedAnchors)
 {
   var stripRe = new RegExp(document.location.href.replace(HTMLArea.RE_Specials, '\\$1') + '(#[^\'" ]*)', 'g');
   html = html.replace(stripRe, '$1');
 }
 
 

 
Ключевой вопрос у меня - что делает это регулярное выражение. Я понял уже, что преобразует URL, но как именно??
 
Сразу же и задача. надо, чтобы от УРЛа оставалась только решетка, и все что правее.

Всего записей: 119 | Зарегистр. 14-04-2004 | Отправлено: 22:28 23-12-2005 | Исправлено: andrey_fisher, 22:28 23-12-2005
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
andrey_fisher
содержимое
Цитата:
HTMLArea.RE_Specials

плиз

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 03:02 24-12-2005
andrey_fisher



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Cheery
 
содержимое HTMLArea.RE_Specials - это HTML код, профильтрованный еще одним рег. выражением.

Код:
HTMLArea.RE_Specials = /([\/\^$*+?.()|{}[\]])/g;

Всего записей: 119 | Зарегистр. 14-04-2004 | Отправлено: 14:33 24-12-2005
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
andrey_fisher

Цитата:
содержимое HTMLArea.RE_Specials - это HTML код, профильтрованный еще одним рег. выражением.  

нет.. это, как раз, и есть регулярное выражение, используемое выше.
var stripRe = new RegExp(document.location.href.replace('/([\/\^$*+?.()|{}[\]])/g', '\\$1') + '(#[^\'" ]*)', 'g');  
все равно нужно объяснять, что происходит?  


----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 23:52 24-12-2005
andrey_fisher



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Cheery
совсем запутался.
везде встречается вот эта статья http://wdh.suncloud.ru/js05.htm, из которой я так и не понял, что сделать, чтобы в stripRe  вместо, допустим index.php?a=27&id=67#anch , как сейчас, оставалось только #anch ?

Всего записей: 119 | Зарегистр. 14-04-2004 | Отправлено: 01:57 25-12-2005
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
andrey_fisher
stripe здесь это просто регулярка.. а не какой то текст.
<script>
var stripe='index.php?a=27&id=67#anch';
stripe=stripe.replace(/.*(#.*)/,'$1');
alert(stripe);
</script>

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 02:14 25-12-2005 | Исправлено: Cheery, 03:10 25-12-2005
vs6262



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
попросила одна девочка с заданием помочь
может кто поможет мне с RegExp -ами
и заодно будет мне учение по RegExp (надо мне со временем ими вплотную занятся)
 
спасибо

Код:
<!--
        4 вариант.
        Вывести слова текста следующим образом:  
            1.    В том же порядке, в каком они следуют в тексте, без знаков препинания
            2.    Слова, в которых гласных букв больше, чем согласных, вывести красным цветом,  
            в которых согласных букв больше, чем гласных – зеленым цветом,  
            в которых гласных и согласных одинаковое количество – оставить черными.
 
        -->
            <script type="text/javascript">
 
                var str = 'Алиса сидела со старшей сестрой на берегу и маялась: делать ей было совершенно нечего, а сидеть без дела, сами знаете, дело нелегкое; раз-другой она, правда, сунула нос в книгу, которую сестра читала, но там не оказалось ни картинок, ни стишков. "Кому нужны книжки без картинок или хоть стишков, не понимаю!" - думала Алиса.'
                        +'\n'+'С горя она начала подумывать (правда, сейчас это тоже было дело не из легких - от жары ее совсем разморило), что, конечно, неплохо бы сплести венок из маргариток, но плохо то, что тогда нужно подниматься и идти собирать эти маргаритки, как вдруг... Как вдруг совсем рядом появился белый кролик с розовыми глазками!'
                        +'\n'+'Тут, разумеется, еще не было ничего такого необыкновенного; Алиса-то не так уж удивилась, даже когда услыхала, что Кролик сказал (а сказал он: "Ай-ай-ай! Я опаздываю!"). Кстати, потом, вспоминая обо всем этом, она решила, что все-таки немножко удивиться стоило, но сейчас ей казалось, что все идет как надо.'
                        +'\n'+'Но когда Кролик достал из жилетного    кармана (да-да, именно!) ЧАСЫ (настоящие!) и, едва взглянув на них, опрометью кинулся бежать, тут Алиса так и подскочила!'
                        +'\n'+'Еще бы! Ведь это был первый Кролик в жилетке и при часах, какого она встретила за всю свою жизнь!'
                        +'\n'+'Сгорая от любопытства, она со всех ног помчалась вдогонку за Кроликом и, честное слово, чуть-чуть его не догнала!'
                        +'\n'+'Во всяком случае, она поспела как раз вовремя, чтобы заметить, как Белый Кролик скрылся в большой норе под колючей изгородью. ';

 
Добавлено:
var vowel_list = 'АЕЁИОУЫЭЮЯаеёиоуыэюя';
var consonant_list = 'БВГДЖЗЙКЛМНПРСТФХЦЧЩШбвгджзйклмнпрстфхцчшщъь';

Всего записей: 2188 | Зарегистр. 25-02-2013 | Отправлено: 01:10 28-04-2018 | Исправлено: vs6262, 01:12 28-04-2018
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vs6262
1) javascript регулярные выражения
2) https://jsfiddle.net/kttmvmby/1/

Всего записей: 15100 | Зарегистр. 20-09-2014 | Отправлено: 01:51 28-04-2018 | Исправлено: Mavrikii, 01:54 28-04-2018
vs6262



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
Вам девочка Большое Спасибо передаёт

Всего записей: 2188 | Зарегистр. 25-02-2013 | Отправлено: 02:00 28-04-2018
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vs6262

Код:
.replace(/[^а-я]/ig, '')

этот кусок можно убрать, о другом думал
https://jsfiddle.net/kttmvmby/2/
ну и еще чуть оптимизировал
https://jsfiddle.net/kttmvmby/3/
 
ps: и -1 регулярка (при желании)
https://jsfiddle.net/kttmvmby/4/

Всего записей: 15100 | Зарегистр. 20-09-2014 | Отправлено: 02:50 28-04-2018 | Исправлено: Mavrikii, 06:30 29-04-2018
vs6262



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
спасибо будет и мне учение на будущее как подобное решать

Всего записей: 2188 | Зарегистр. 25-02-2013 | Отправлено: 08:40 28-04-2018
vs6262



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
str.replaceAll("\\^([0-9]+)", "<sup>$1</sup>");
 
это я из Java взял.
как вместо "\\^([0-9]+)" прописать для "\", "\\", "//" и "/" (чтобы все сразу детектировались)?
 
заранее спасибо
 
 
Добавлено:
http://www.quizful.net/post/Java-RegExp
нашел описание RegExp  
 
Добавлено:
"\\^([\\|\|//|/]+"
так правильно?
 
Добавлено:
или "\\^([\\n|\n|//|/]+)"  ?

Всего записей: 2188 | Зарегистр. 25-02-2013 | Отправлено: 19:13 02-08-2018 | Исправлено: vs6262, 19:16 02-08-2018
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vs6262

Цитата:
это я из Java взял.  

ну взяли, только определитесь о чем речь - о Java или Javascript.

Всего записей: 15100 | Зарегистр. 20-09-2014 | Отправлено: 21:35 02-08-2018
vs6262



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
или "\\^([\\n|\n|//|/]+)"  ?

это хоть правильно?

Всего записей: 2188 | Зарегистр. 25-02-2013 | Отправлено: 21:43 02-08-2018
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vs6262

Цитата:
это хоть правильно?

для какого языка и с какой целью?

Всего записей: 15100 | Зарегистр. 20-09-2014 | Отправлено: 21:46 02-08-2018 | Исправлено: Mavrikii, 21:46 02-08-2018
vs6262



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
мне нужно выуживать "\", "\\", "//" и "/"  
язык Java я думал от JS подойдет

Всего записей: 2188 | Зарегистр. 25-02-2013 | Отправлено: 21:51 02-08-2018
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vs6262

Цитата:
язык Java я думал от JS подойдет

Java обсуждается в прикладном, сюда - Регулярные выражения

Цитата:
[\\n|\n|//|/]+

сюда добавляем все элементы, что ищем.
либо (\\|\\\\|//|/) такого типа. но разницы между \ и \\ или / и // для такой регулярки нет, поэтому двойное использование можно и пропустить
 
более того, для таких простых вещей не нужны регулярки. банальный replace несколько раз - будет быстрее
правда у Java есть особенности - https://stackoverflow.com/questions/6262397/string-replaceall-is-considerably-slower-than-doing-the-job-yourself

Всего записей: 15100 | Зарегистр. 20-09-2014 | Отправлено: 21:54 02-08-2018 | Исправлено: Mavrikii, 22:07 02-08-2018
vs6262



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
Pattern p = Pattern.compile("[,. ]+");
 
// repeat only the following part:
String output = p.matcher(input).replaceAll("");

спасибо Mavrikii за это

Всего записей: 2188 | Зарегистр. 25-02-2013 | Отправлено: 18:25 29-09-2018
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Интернет » Web-программирование » JavaScript RegExp


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru