Javascript Regex Заменить Точный символ - PullRequest
0 голосов
/ 24 мая 2011

У меня есть этот код

htmlString= htmlString.replace( new RegExp( "WW(.+?)WW", "gim" ),
    "<span style='color:red;border-bottom:1px dashed red;'>$1</span>" );

Кажется, это работает, но заменяет www в URL.У меня есть WW где-то WW, я обрезаю текст между WW и заменяю его.Тем не менее, я не могу получить только точную последовательность символов.Я пробовал {WW} ^ WW [^ WW] с окончанием [$ WW] и вариациями.Также пробовал \ bWW string \ bWW и без совпадений.

Любая помощь будет отличной, спасибо.

Ответы [ 2 ]

4 голосов
/ 24 мая 2011

Предполагая, что после начального WW и перед окончательным WW (например, пробел) есть что-то еще, кроме буквенно-цифровых символов, тогда вы можете сделать это:

htmlString = htmlString.replace(/\bWW\b\s*(.+?)\s*\bWW\b/g, 
    "<span style='color:red;border-bottom:1px dashed red;'>$1</span>" );

Используя регулярное выражениеОбъект вместо строкового литерала облегчает чтение.Если бы вы использовали \b в строковом литерале, это означало бы «возврат», вам нужно избегать обратной косой черты в строковом литерале, чтобы приведенное выше регулярное выражение стало "\\bWW\\b\\s*(.+?)\\s*\\bWW\\b".

0 голосов
/ 24 мая 2011

Если текст, который вы хотите заменить, всегда в верхнем регистре, а www, который вы не хотите заменять, всегда в нижнем регистре, тогда вы можете просто заменить "gim" на "gm": i означает игнорировать регистр,m в "gim" не имеет значения в RegExp, поэтому вы можете уменьшить его до "g".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...