Jquery替换文本直播不起作用

时间:2011-10-03 12:58:23

标签: javascript jquery regex replace wysiwyg

这是我的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}","</code></pre>")
    .replace("{img}",'<img src="http://localhost/CI_DEVBASE/img/logo.png" width="150" height="50"')
    .replace("{/img}",'/>');

    $('.wysiwyg-preview').html(wysiwyg_val);


  });

html是。

<textarea class="wysiwyg"></textarea>
<div class="wysiwyg-preview"></div>

如果我在textarea中只放置1 {code}{/code},则此代码有效,但是如果我放置2 {code}{/code} {code}{/code}它只替换第一个,那么我如何将此函数应用于{{{}内的所有文本1}}?

2 个答案:

答案 0 :(得分:1)

g应该用于替换global。此外,我还使用\来转义特殊字符,例如{/等。以下是为您更正的代码:

wysiwyg_val = wysiwyg_val
    .replace(/\n/g, "<br />")
    .replace(/\n\n+/g, '<br /><br />')
    .replace(/\{code\}/g,"<pre><code>")
    .replace(/\{\/code\}/g,"</code></pre>")
    .replace(/\{img\}/g,'<img src="http://localhost/CI_DEVBASE/img/logo.png" width="150" height="50"')
    .replace(/\{\/img\}/g,'/>');

答案 1 :(得分:1)

Hej Ispuk

您已经在代码中找到了解决方案

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

g将它全局化。对代码块使用相同的技术。