Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

JavaScript - регулярное выражение

8.5K
17 февраля 2008 года
Имхотеп
14 / / 03.11.2004
никак не получается в Яваскрипте в рег. выражении написать шаблон поиска завершения строки. Для поиска символов, отличных от символа завершения строки, используется точка: '.' Поэтому я пытался искать конец строки выражением /[^.]/ -бесполезно! Символ точки в скобках воспринимается только как символ "точка", а не спецсимвол. Вне скобок, т.е. в /./ -воспринимается как надо, но как задать исключение?

пробовал и так:
var w=String.fromCharCode(13,10)
var reg='/'+w+'/'
i=code_text.search( eval(reg) )
- тоже не канает.

Поиск идет в тексте, расположенном в теге <pre></pre>.
Знаю, что конец строки можно найти методом indexOf, но это в данном случае не слишком элегантно, т.к. это шаблон будет только частью большого многовариантного шаблона!
Буду очень благодарен, если кто подскажет по проблеме.
24K
17 февраля 2008 года
ostgals
53 / / 27.08.2007
не надо javascript'овским регуляркам подсовывать коды символов переноса строки, надо использовать метасимволы (\r и/или \n).
например, так:

 
Код:
document.write("Found at: " + "line1\r\nline2".search(/\r\n/));
8.5K
18 февраля 2008 года
Имхотеп
14 / / 03.11.2004
Спасибо за подсказку. Выяснил, что поиск завершения строки в ЯваСкрипте производится по шаблону /\r/.
Выражения /\r\n/ и даже /\n/ - не срабатывают.
24K
18 февраля 2008 года
ostgals
53 / / 27.08.2007
Если я не ошибаюсь, то вариации \r, \n и \r\n зависят от платформы. Виндусовский - который двойной, а одиночные - это Юниксовский и Маковский.

Можно в регулярке дать такое "универсальное" выражение:

 
Код:
document.write("Found at: " + "line1\r\nline2".search(/(\r\n|\r|\n)/);
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог