jQuery javascript regex将\替换为\ n

时间:2011-05-11 04:49:46

标签: javascript jquery regex

如何编写正则表达式以将<br /><br>替换为\n。我正在尝试将文本从div移动到textarea,但不希望<br>显示在textarea中,所以我想用\n替换它。

5 个答案:

答案 0 :(得分:158)

var str = document.getElementById('mydiv').innerHTML;
document.getElementById('mytextarea').innerHTML = str.replace(/<br\s*[\/]?>/gi, "\n");

或使用jQuery:

var str = $("#mydiv").html();
var regex = /<br\s*[\/]?>/gi;
$("#mydiv").html(str.replace(regex, "\n"));

example

编辑已添加i标记

edit2 :您可以使用/<br[^>]*>/gi来匹配brslash之间的任何内容,例如<br class="clear" />

答案 1 :(得分:9)

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

答案 2 :(得分:5)

如果你想直接改变DOM而不搞乱内部HTML,那就是真正的jQuery方式:

<击> $( '#文本')找到( 'BR')前面加上(document.createTextNode( '\ n'))除去();

在元素内部插入插入,before()是我们需要的方法:

$('#text').find('br').before(document.createTextNode('\n')).remove();

代码会找到任何&lt; br&gt;元素,插入带有换行符的原始文本,然后删除&lt; br&gt;元素。

如果您使用长文本,这应该会更快,因为这里没有字符串操作。

显示新行:

$('#text').css('white-space', 'pre-line');

答案 3 :(得分:3)

一个便宜又讨厌的人会: <击>

<击>
jQuery("#myDiv").html().replace("<br>", "\n").replace("<br />", "\n")

<击> 修改

jQuery("#myTextArea").val(
    jQuery("#myDiv").html()
        .replace(/\<br\>/g, "\n")
        .replace(/\<br \/\>/g, "\n")
);

如果需要,还会创建一个jsfiddle:http://jsfiddle.net/2D3xx/

答案 4 :(得分:2)

与jQuery没有任何关系,但是如果你想从字符串中修剪一个模式,那么使用正则表达式:

<textarea id="ta0"></textarea>
<button onclick="
  var ta = document.getElementById('ta0');
  var text = 'some<br>text<br />to<br/>replace';
  var re = /<br *\/?>/gi;
  ta.value = text.replace(re, '\n');
">Add stuff to text area</button>