замена пользовательских тегов jquery textarea - PullRequest
0 голосов
/ 28 февраля 2011

Я в основном пытаюсь создать свои собственные теги - и заменить их правильными тегами HTML. Так что {B} {/B} превратится в <b> </b>

Я только дошел до этого, здесь: http://www.nacremedia.com/text2.htm

Используйте кнопку [B] для выделения жирным шрифтом текущего выделения ... оно создает два жирных тега и одно закрытие по некоторым причинам.

Я так близко! Но мне просто нужно немного руководства, чтобы вывести последние ошибки - может кто-нибудь помочь, пожалуйста?

Кроме того, если есть лучший способ сделать это в целом, тогда я более чем рад новым идеям.

Ответы [ 2 ]

0 голосов
/ 01 марта 2011

Если вы попытаетесь выделить жирным шрифтом текст «Test», то в самом конце цикла for в replaceArray replaceString будет иметь значение dsaf <</i> b>

Это происходит потому, что на последнем шаге цикла косая черта в Test совпадает с регулярным выражением / [/ I] / g, поскольку скобки в регулярных выражениях указывают классы символов. Вместо того, чтобы искать «[/ I]» в строке, регулярное выражение фактически ищет косую черту или символ I.

Наконец, при вставке в выходной div браузер автоматически закрывает первый тег жирным шрифтом и опускает закрывающий тег курсива, оставляя в конце то, что кажется лишним жирным тегом.

Удаление скобок в «[/ I]» должно исправить вашу проблему или, что еще лучше, изменить ее на «{/ I}», чтобы избежать этой проблемы и соответствовать тому, как реализован жирный шрифт.

Для получения дополнительной информации о классах символов регулярных выражений см. http://www.regular -expressions.info / charclass.html

И последнее: функциональная глава eloquent javascript (http://eloquentjavascript.net/chapter6.html)) очень хорошо объясняет один из лучших способов анализа и генерации разметки.

0 голосов
/ 28 февраля 2011

Вы можете использовать ряд функций .replace () для строк. Например:

var your_string = "{B}Testing{/B}";
your_string.replace("{B}", "<b>");
your_string.replace("{/B}", "</b>");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...