Помогите с регуляркой
Всем привет.
Нужно в тексте обернуть текст вида: #[a-z0-9] ссылкой, перед # может стоять любой спец.символ(в том числе и пробел) кроме #, а также и после. Например: Текст!#тег? Вот что смог написать: html.replace(/([\!\$\%\^\*\(\)\-\=\+\?\.\:\;\№\"\'\,\/\s]+?)\#([A-Za-zА-Яа-я0-9ёЁ_]+)([\!\$\%\^\*\(\)\-\=\+\?\.\:\;\№\"\'\,\/\s]+?)/gm, '$1<a href="#">#$2</a>'); Иногда удаляет из текста и пробелы, которые стоят перед #. Может можно как нибудь проще переписать выражение? |
Обязательно спецсимвол перед строкой и после?
Просто так, не пойдёт? html.replace(/([^#])(#[a-zа-я0-9ё_]+)/gi, '$1<a href="#">$2</a>'); P.S. А съедет у тебя потому что ты про третью скобку забыл, $1<a href="#">$2</a>*!*$3*/!* |
Цитата:
Спасибо. |
Со спецсимволом так:
html.replace(/([!$%*()=+?.:;№"',\^\/\-\s])(#[a-zа-я0-9ё_]+)(?=[!$%*()=+?.:;№"',\^\/\-\s])/gi, '$1<a href="#">$2</a>');Только вы уверены что указали все, какие нужно?) |
Aetae, нужны только все пунктуационные символы, но думаю не стоит так усложнять, оставлю как есть.
|
Часовой пояс GMT +3, время: 16:10. |