【问题标题】:At witt's end... Javascript won't replace '\n'!在 witt's end... Javascript 不会替换 '\n'!
【发布时间】:2009-07-07 01:23:25
【问题描述】:

我已经解决这个问题几个小时了,而且运气为零。不知道这怎么可能;我会试着总结一下。

我正在使用 TinyMCE 将新内容插入数据库,该内容在插入数据库后作为 AJAX 响应发送回来,然后显示在页面上,替换一些旧内容。所有这些都与问题无关(据我所知),但它可以作为问题的背景。

无论如何,只要内容有换行符,响应文本就有适当的“\n”。我似乎一辈子都无法删除那些该死的'\n'。我已经尝试了十几个零运气的正则表达式/替换组合。我已经验证我并没有失去理智,并且代码通常通过尝试替换该字符串中的其他单词来工作,并且效果很好 - 它只是不会替换'\ n'。这是我用来尝试替换 '\n's 的一些代码:

responseText = responseText.replace(/\r|\n|\r\n/g, "");

responseText = responseText.replace(Array("\r", "\n", "\f", "\r\n", "\n"), "");

它们都不会对变量做任何事情。我在检查更改后立即提醒它,nada。我不知道它是否会有所帮助,但这里有一个示例 '\n' 复制粘贴的 sn-p,它不会消失或更改。

High School transcript</li>\n<li>SAT/ACT

作为旁注,我已经尝试通过 PHP 执行此操作,然后将 responseText 发送回 javascript,并使用类似的替换和正则表达式,但它也不起作用。

【问题讨论】:

  • 附加说明:在处理特殊字符(即\n\r等)时,您通常希望使用单引号'\n''\r',因为在大多数情况下,您正在寻找单个字符而不是字符串。
  • @DavidStarkey - Javascript 中的单引号和双引号没有区别。团队的风格指南或个人约定应该是指导原则stackoverflow.com/questions/3149192/…

标签: javascript jquery regex string escaping


【解决方案1】:

您确定它是换行符而不是文字“\n”(即转义换行符)吗?

试试这个:(注意双反斜杠)

responseText = responseText.replace(/\\n/g, "");

【讨论】:

  • 太棒了。我欠你一个。在考虑了这种情况之后,这很有效并且非常有意义。那个正在恶化的人......干杯!
【解决方案2】:
responseText = responseText.replace(/\n/g, "");

不要忘记使用 /g 标志,否则只会替换第一个标志!

【讨论】:

  • 不起作用,与我尝试过的几乎相同: responseText = responseText.replace(/\r|\n|\r\n/g, "");是吗?
  • 好吧,既然你说“响应文本在内容有换行符的地方都有'\n'”,我尝试删除换行符,它确实删除了换行符。
猜你喜欢
  • 1970-01-01
  • 2018-05-17
  • 1970-01-01
  • 1970-01-01
  • 2012-12-13
  • 2012-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多