Jquery заменить текст, но сохранить регистр - PullRequest
3 голосов
/ 17 ноября 2011

Я создаю веб-сайт для тех, кто любит использовать слово «Sensasianal» для описания своей азиатской кухни.Слово «азиаты» всегда выбирается с использованием другого цвета, которого мне удалось добиться в Jquery с помощью .replace (), таким образом: -

replaceAsian.html(replaceAsian.html().replace(/sasiana/ig, "s<em>asian</em>a"));

Затем я могу оформить элемент отдельным цветом.

Однако, если исходный текст в верхнем регистре, результат в смешанном регистре.

Итак, я попробовал это

replaceAsian.html(replaceAsian.html().replace(/SASIANA/ig, "S<em>ASIAN</em>A"));
replaceAsian.html(replaceAsian.html().replace(/sasiana/ig, "s<em>asian</em>a"));

Но результат все еще в смешанном регистре.

Если бы кто-то мог посоветовать мне, как внести изменения в текст, но сохранить первоначальный вариант, я был бы признателен за помощь.Большое спасибо.

Ответы [ 3 ]

9 голосов
/ 17 ноября 2011
replaceAsian.html(replaceAsian.html().replace(/(s)(asian)(a)/ig, "$1<em>$2</em>$3"));

сохранит регистр, потому что он использует совпадающий текст.

Обратите внимание, что i является флагом нечувствительности к регистру, а g означает, что он будет соответствовать каждому вхождению, а не только первому, как это было бы без флага g.

Довольно хороший обзор функций регулярных выражений в JS см. MDN .

4 голосов
/ 17 ноября 2011
replaceAsian.html(replaceAsian.html().replace(/(S)(ASIAN)(A)/ig, "$1<em>$2</em>$3"));

jsFiddle to Доказать

1 голос
/ 17 ноября 2011
replaceAsian.html(replaceAsian.html().replace(/SASIANA/g, "S<em>ASIAN</em>A"));
replaceAsian.html(replaceAsian.html().replace(/sasiana/g, "s<em>asian</em>a"));

Дополнительную информацию о регулярном выражении см. На этой странице .

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