Jquery заменить текст вживую не работает - PullRequest
0 голосов
/ 03 октября 2011

это мой js.

$('.wysiwyg').live('keyup',function(){

     wysiwyg_val = $(this).val();

    wysiwyg_val = wysiwyg_val
    .replace(/\n/g, "<br />")
    .replace(/\n\n+/g, '<br /><br />')
    .replace("{code}","<pre><code>")
    .replace("{/code}","
") .replace (" {img} ", 'image'); $('.wysiwyg-preview').html(wysiwyg_val); });

the html is.

 

этот код работает, если я помещаю только 1 {code}{/code} внутри текстовой области, но если я помещаю 2 {code}{/code} {code}{/code}, он заменяет только первый, как я могу применить эту функцию ко всемтекст внутри wysiwyg_val?

Ответы [ 2 ]

1 голос
/ 03 октября 2011

Hej Ispuk

у вас уже есть решение в вашем коде

.replace(/\n/g, "<br />")

и вы решите сделать это глобально.Используйте ту же технику с блоками кода.

1 голос
/ 03 октября 2011

g следует использовать для замены global.Также я использовал \ для экранирования специальных символов, таких как {, / и т. Д. Вот исправленный код для вас:

wysiwyg_val = wysiwyg_val
    .replace(/\n/g, "<br />")
    .replace(/\n\n+/g, '<br /><br />')
    .replace(/\{code\}/g,"<pre><code>")
    .replace(/\{\/code\}/g,"
") .replace (/ \ {img \} / g, '«);
...