【问题标题】:String replace \n with <br/> not working用 <br/> 替换字符串 \n 不起作用
【发布时间】:2011-05-13 12:25:53
【问题描述】:

我目前正在通过我的 doc 类通过 XML 加载一些文本 - 该文本包含 \n 标签

XML 示例:

我想要做的是将我的字符串中的 \n 替换为

我尝试了一些方法:

string = string.split("\n").join('<br/>');

string = string.replace("\n","<br/>");

但是之后追踪 string,或者只是看到 myTextField.htmlText = string; 显示的内容,我仍然看到 \n 标签

有什么想法吗?

代码图解:

// The string which contains the XML loaded content
var string:String;

var myTextField:TextField = new TextField();
myTextField.defaultTextFormat = myFormat;
myTextField.width = 300;
myTextField.border = false;
myTextField.embedFonts = true;
myTextField.multiline = true;
myTextField.wordWrap = true;
myTextField.selectable = false;

myTextField.htmlText = string;

addChild(myTextField);

【问题讨论】:

  • 也许尝试设置一个高度?以 200 或其他东西为例。
  • 当你说你仍然看到'\n'标签时,你的意思是它有换行符,对吧?它不是字面上的“\n”,是吗?如果是,请尝试 .replace("\\n", "
    "); ?
  • 我的意思是 \n 实际上是作为我的文本的一部分输出,而不是被
    替换,这会导致我的文本中断
  • .replace("\\n", "
    ");成功了!所以我基本上错过了一个“\”奇怪的。非常感谢 izb!
  • 实际上它似乎在只有一个 \n 的情况下工作正常但是如果同一字符串中有多个 \n 它只会替换第一个?

标签: actionscript-3 flash-cs5


【解决方案1】:

你想要:

string = string.replace(/\n/g, "<br>");

这会将所有换行符替换为&lt;br&gt;

【讨论】:

    【解决方案2】:

    我相信你想要:

    str = str.replace("\\n", "\n");
    

    或以下适用于所有实例:

    str = str.split("\\n").join("\n");
    

    试试看

    【讨论】:

    • 您需要转义 \n 中的 \
    • 嗨 Lex,欢迎来到 SO。我们在这里不使用签名,所以我从你的回答中删去了它。此外,如果您查看下面的 cmets,您会发现提问者已经找到了该问题的解决方案,他们只是忽略了将其标记为“已回答”。
    【解决方案3】:

    上面的解决方案对我不起作用

    string = string.replace(/\n/g, "<br>");
    

    我能够以这种方式做同样的事情

    string = string.replace(new RegExp(String.fromCharCode(13), "<br>");
    

    我正在使用 flash cs6-as3

    如果其他人不适合你,希望这会有所帮助

    【讨论】:

      猜你喜欢
      • 2010-11-28
      • 2015-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-28
      • 2020-06-27
      • 2011-09-03
      相关资源
      最近更新 更多