мой html.jQuery простой wysiwyg замены
<div class="wysiwyg">
<textarea></textarea>
</div>
<div class="wysiwyg-preview"></div>
сейчас мой js.
var wysiwyg_val;
$('.wysiwyg textarea').live('keyup',function(){
wysiwyg_val = $(this).val();
wysiwyg_val = wysiwyg_val
.replace(/\n/g, "<br>")
.replace(/<br>/g,'[br]')
.replace(/\</g,'<')
.replace(/\>/g,'>')
.replace(/\{code}(.*){\/code}/g, '<pre class="prettyprint"><code>$1</code></pre>')
.replace(/\[br\]/g,'<br>');
$('.wysiwyg-preview').html(wysiwyg_val);
});
я пытаюсь заменить {code} $content {/code} with <pre><code> $content </code></pre>
и он работает, но он работает только в первый раз, что я поставил {code} some content{/code}
в текстовом поле, а затем из второго раза, что я поставил же {code} some content{/code}
он показывает все внутри первый <pre><code></code></pre>
, как я могу приложить замену всем {code}$content{/code}
, основанным не только на первом основании?
ну ваш код действительно нормально, и беспорядок был примерно в этих двух строках .replace (/ \ {code \}/g, '
') – sbaaaangi turn to live() просто вызывать иногда i $ .load() динамически модули, которые имеют этот скрипт внутри: P – sbaaaang
Я запускал код через jsLint, и ему не нравится использовать '.' внутри регулярного выражения, поэтому я решил, почему бы не разделить эту строку на две. – Mottie