【问题标题】:inserting line breaks in text quoted in javascript在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;),或者,这些推荐来自您无法编辑的来源?

标签: javascript textarea line-breaks


【解决方案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,它应该可以工作。
    猜你喜欢
    • 1970-01-01
    • 2014-03-11
    • 2019-05-14
    • 2017-11-14
    • 2013-05-23
    • 2018-06-08
    • 1970-01-01
    • 2011-04-17
    • 1970-01-01
    相关资源
    最近更新 更多