【问题标题】:jQuery unexpected token illegal for \njQuery 意外令牌对于 \n 是非法的
【发布时间】:2014-08-21 19:58:02
【问题描述】:

任何时候我在浏览器抛出的 javascript/jQuery 中的任何地方使用\n

未捕获的语法错误:意外令牌非法

我找到了在不使用\n 的情况下添加新行的方法,但是我找不到在不使用\n 的情况下从文本区域读取\n 的方法。我正在使用带有 chrome 浏览器版本 36 的 mac pro mavericks。代码是从 linux 服务器的 php 脚本输出的。我也试过在 Firefox 中并得到一个等价的错误。 示例包括:

var line = $('#textareaid').val().split("\n");
var line = $('#textareaid').val().split("\r\n");
var some = "This is\nsome text";

所有示例都有错误以及\n 的任何其他用法。我找不到任何对\n 不起作用的参考,但有很多使用它的例子。

【问题讨论】:

  • 试试.split("\\n").split("\\r\\n")
  • \n 应该 100% 有效。
  • @epascarello 是的,我以前从未遇到过问题。只是猜测。
  • 我猜 PHP 正在打印实际的换行符,而不是上面的字面意思。所以 \\n 在 PHP 级别是正确的。

标签: javascript php jquery newline


【解决方案1】:

试试这个-

var line = $('#textareaid').val().split("\\n");

【讨论】:

  • 这正是我所做的,现在可以工作了。我以为我以前试过这样,但文档类型把它搞砸了。谢谢。
【解决方案2】:

JavaScript 中的 "\n" 没有任何问题,但是如果您的 PHP 脚本正在打印文字换行符,那么您的 JavaScript 将无效。

这个PHP:

echo "split(\"\n\")"; 

将打印这个:

split("
")

这会引发 JavaScript 语法错误。

所以 PHP 应该是:

echo "split(\"\\n\")";

【讨论】:

  • 我之前尝试过双斜杠,但我在 doctype 中,这就是它不起作用的原因。现在工作。谢谢。
【解决方案3】:

由于 '\n' 是转义序列,因此您必须使用额外的反斜杠,如下所示:

$('#textareaid').val().split("\\n");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-29
    • 1970-01-01
    • 1970-01-01
    • 2012-11-07
    • 2015-10-19
    • 2011-05-23
    • 1970-01-01
    相关资源
    最近更新 更多