函数输入上的未终止的文字字符串

时间:2015-03-22 14:05:46

标签: javascript syntax-error

我编写了一个函数,其输入应该包含换行符:

function goh(textt) {
    textt = textt.split('\n');
    for(i=0; i<textt.length; i++) {
        textt[i] = i+'='+textt[i]
    }
    return textt.join('\n');
}

例如我想以这种方式调用它:

goh("http://www.youtube.com/watch?v=
http://www.youtube.com/watch?v=
http://www.youtube.com/watch?v=
http://www.youtube.com/watch?v=
http://www.youtube.com/watch?v=
http://www.youtube.com/watch?v=
http://www.youtube.com/watch?v=");

但它在firefox的控制台中给了我这个错误。 (顺便说一句,我之前已经阅读过有关此问题的所有问题......)

SyntaxError: unterminated string literal

如何解决此问题?

编辑:

请大家听。我知道你在这说什么。在这种情况下,我会自己添加\n xD。 我希望脚本为我做这个
我想传递 RAW 输入。

3 个答案:

答案 0 :(得分:1)

只需使用\n即可。它的行为是一样的。

goh("http://www.youtube.com/watch?v=\nhttp://www.youtube.com/watch?v="); // many more

来自您的评论

  

不,不,我不能!我希望脚本为我做这个,我只是想通过   原始输入.....不是一个好的答案。

您必须使用数组并按下&#34;原始输入&#34;并加入他们。

var arr = [];
arr.push("raw data");
arr.push("raw data");
for(var i = 0; i < arr.length; i++)
    console.log(arr[i], "There's no need of split");

答案 1 :(得分:0)

关于:

  

SyntaxError:unterminated string literal如何解决此问题?

你应该使用反斜杠:

goh("http://www.youtube.com/watch?v=\
http://www.youtube.com/watch?v=\
http://www.youtube.com/watch?v=\
http://www.youtube.com/watch?v=\
http://www.youtube.com/watch?v=\
http://www.youtube.com/watch?v=\
http://www.youtube.com/watch?v=");

如果您想发送纯粹的换行符,请使用\n作为@amit应答。

答案 2 :(得分:-1)

JavaScript不允许使用多行字符串,但您可以使用\n,它会在字符串中为您提供换行符:

var a = "a\nb\nc";

console.log(a); // will give you:
"a
b
c"

如果您认为一行会混乱,您可以始终使用字符串连接:

var a = "a\n" + 
  "b\n" + 
  "c";

// using String.prototype.concat    
var a = "a\n".concat(
  "b\n",
  "c\n"
);

// Using Array.prototype.join
var a = ["a", "b", "c"].join('\n');

现在我的问题是:为什么不发送数据并忘记分裂,加入等麻烦?