在javascript中引用的文本中插入换行符

Posted

技术标签:

【中文标题】在javascript中引用的文本中插入换行符【英文标题】:inserting line breaks in text quoted in javascript 【发布时间】:2012-05-28 11:39:40 【问题描述】:

使用 javascript 进行一些文本交换(推荐淡入/淡出),并希望在引号内插入相当于 <br/> 的内容,以便引号的作者在下一行。在下面的代码中,我尝试按照JavaScript: How to add line breaks to an html textarea? 的说明进行操作,但不知道如何插入/\n\r?/g 以使其工作。

<script type="text/javascript">
    var text = document.forms[0].txt.value;
    text = text.replace(/\n\r?/g, '<br />');
</script>

<script type="text/javascript">

    window.testimonials = [
        '"This was a great experience" /\n\r?/g - Max Cameron, ThinkTank',
        '"This was a great experience" /\n\r?/g - Max Cameron, ThinkTank',
        "source code"
    ];
</script>

有没有办法强制它进入下一行?谢谢!

【问题讨论】:

如果您插入/\n\r?/g(听起来是这样),为什么不直接使用您想要的文本(&lt;br/&gt;),或者,这些推荐来自您无法编辑的来源? 【参考方案1】:

你在这里做了一些很奇怪的事情。为什么要在变量中插入“正则表达式”?

小提琴:http://jsfiddle.net/4Fheu/

试试这个:

<script type="text/javascript">
    var text = window.testimonial; // or maybe: document.forms[0].txt.value;
    text = text.replace(/\n\r?/g, '<br />');
    alert(text);
</script>

<script type="text/javascript">

    window.testimonials = [
        '"This was a great experience" \n - Max Cameron, ThinkTank',
        '"This was a great experience" \n - Max Cameron, ThinkTank',
        "source code"
    ];
</script>

/\n\r?/ 是一个正则表达式,它表示:'newline' 后跟 0 或 1 '回车'。

'/\n\r?/' 的值是一个可能如下所示的字符串:

/ /

【讨论】:

【参考方案2】:

Borrowing from what you linked to:

window.testimonials = [
'"This was a great experience" /\n\r?/g - Max Cameron, ThinkTank'.replace(/(\n\r?)|(,)/g, '<br />');,
'"This was a great experience" /\n\r?/g - Max Cameron, ThinkTank'.replace(/(\n\r?)|(,)/g, '<br />');,
"source code"];

【讨论】:

hm,这完全破坏了文本交换功能。有没有其他办法? 还是不行 :\ 你有没有推荐其他脚本来用淡入淡出转换交换推荐? 它不起作用,因为您将正则表达式放入字符串中。如果您从字符串中删除/?/g,它应该可以工作。

以上是关于在javascript中引用的文本中插入换行符的主要内容,如果未能解决你的问题,请参考以下文章

在字符串javascript中插入换行符

用javascript填充textarea,添加换行符[重复]

使用 d3.js 时可以在文本中插入换行符吗? [复制]

如何在 argparse 帮助文本上插入换行符?

github中的 README.md 内容怎么换行

在 PDF 中插入换行符