jQuery javascript regex用\n替换<br>

Pin*_*kie 62 javascript regex jquery

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

Ten*_*eff 165

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

或使用jQuery:

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

编辑:添加i标志

edit2:你可以使用/<br[^>]*>/gi哪个匹配任何东西br,slash如果你有,例如<br class="clear" />

  • 这是有效的,但我只是注意到IE6,7,8显示大写`<BR>`我们怎么能这样做,所以它适用于大小写字母. (2认同)
  • @Pinkie你可以为**不区分大小写添加`i`标志** (2认同)

Ada*_*ark 10

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


Jam*_*ury 5

便宜又令人讨厌的是:

jQuery("#myDiv").html().replace("<br>", "\n").replace("<br />", "\n")
Run Code Online (Sandbox Code Playgroud)

编辑

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

如果需要的话还创建了一个jsfiddle:http ://jsfiddle.net/2D3xx/


Rad*_*ech 5

如果您想直接更改DOM而又不弄乱内部HTML,则采用真正的jQuery方法:

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

前置元素中插入,before()是我们在这里需要的方法:

$('#text').find('br').before(document.createTextNode('\n')).remove();
Run Code Online (Sandbox Code Playgroud)

代码将找到任何<br>元素,使用换行符插入原始文本,然后删除<br>元素。

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

要显示新行:

$('#text').css('white-space', 'pre-line');
Run Code Online (Sandbox Code Playgroud)