Рег.выражения, подсветка кода
Вложений: 1
Проблема в руках так скажем. Первый день за javascript =) Делаю модуль для сайта - подсветка кода. Всё работает за исключением этого проблемного куска:
... data = code_block[i].innerHTML; ... //Обрабатываем строки data = data.replace(/(['`].*['`])/gi,'<span class="strings">$1</span>'); //Комментарии data = data.replace(/(\/\*.*\*\/)/gi,'<span class="comments">$1</span>'); ... code_block[i].innerHTML = data; ... Фрагмент кода на странице: /*Комментарий*/; 'строка'; /*Коментарий*/'и строка'; /* ' Комментарий*/'и строка =(\'; Результат: http://javascript.ru/forum/attachmen...1&d=1297786989 4-ая строка должна быть как 3-яя, не пойму как исправлять. И ещё вопрос тудаже: как подсветить комментарии в несколько строк? Пример: /* Комент Комент Комент */ Пробовал в параметрах replase ставить /m , но не помогло...пробовал вначале обработки переводить всё в 1 строку (заменять переносы на другой символ), обрабатывать и потом восстанавливать...но как-то тоже криво было... Буду рад советам и любым ответам. Спасибо. |
Почитайте про жадность регэкспов.
|
Спасибо, некоторый плюс дало, второй вопрос по многоуровневым коментариям отпал. По первому получилось чуть лучше, в 4-ой строке кусок 'и строка=('; теперь не зелёный а нейтральный (должен быть синим)...
|
Сори...не дал ксс чтоб цвета разделять. Вобщем class="comments" зелёный, а class="strings" синий.
|
Доброго всем времени суток а не подскажете мне регулярное выражение для строки типа:
var rex = ?; var txt = <option>Сидоров Петр Ильич<option>Самойлов Николоай Федоврович<option>Дубиков Леонид Васильевич<option>Петров Андрей Батькович rex.exec(txt); //Надо получить примерно следующее: Сидоров Петр ИльичСамойлов Николай ФедоровичДубиков Леонид ВасильевичПетров Андрей Батькович заранее Спасибо буду признателен до глубины |
neptun,
txt.split("<option>") |
Спасибо тебе друг мне как раз нужен был массив в выводе так что ОГРОМНОЕ ЧЕЛОВЕЧЕСКОЕ тебе СПАСИБО
var Array = txt.split("<option>"); это то что мне нужно... |
Часовой пояс GMT +3, время: 11:23. |