javascript中db数据的未终止字符串文字

时间:2016-04-21 19:35:18

标签: javascript

这是我的代码输出,将数据传递给控制台:

console.log('
FUN, FRIENDLY,  * New PRIVATE PARTY ROOM with stage, 70" Satellite TV, comfortable lounge seating
Exciting Bachelor Parties, Unique Surprise Birthday Parties, Divorce, Retirement....You Own IT!
Party includes: 90 Minutes Open Bar, Dedicated Waitress, complimentary Dance of choice for the guest of honor, '.trim());

我的结果是:SyntaxError: unterminated string literal

我理解这是在javascript中破坏新行的问题,我需要使用\,但这是动态数据,如下所示:

var b = '<xsl:value-of select="./description"/>'; <--- the output above gets assigned here

那么,我该如何解决这个问题呢? 应用程序未在日志中输出此文本。它显示为空白我应该将\n替换为\吗?

不太确定解决方案。

2 个答案:

答案 0 :(得分:1)

简单的解决方案就是逃避换行。您希望保留\n,但只能保留字符串文字格式。

让我举个例子......

你有“\ n”,这是一个文字换行符。 你想得到“\ n”,这样第一个斜杠就会逃脱第二个斜杠。

您不能将“\”替换为“\”(或“\”替换为“\\”,以遵循正确的转义),因为“\ n”只是一个字符。

你想要的只是

yourstring.replace(/\n/g, "\\n");

这对你的字符串执行一个RegExp替换(第一个参数是要查找的模式。我使用“g”标志 - global - 这样每个换行都被替换,而不仅仅是第一个换行)。第二个参数是替换 - 在我们的例子中,它是一个字符串文字,但如果你需要根据匹配的模式生成一个值,你可以使用一个函数。

答案 1 :(得分:0)

您可以将\n替换为\\\n。前两个\将导致单个反斜杠成为输出的一部分。最后\n会导致换行。

您的代码输出如下:

console.log('\
FUN, FRIENDLY,  * New PRIVATE PARTY ROOM with stage, 70" Satellite TV, comfortable lounge seating\
Exciting Bachelor Parties, Unique Surprise Birthday Parties, Divorce, Retirement....You Own IT!\
Party includes: 90 Minutes Open Bar, Dedicated Waitress, complimentary Dance of choice for the guest of honor, '.trim());

如果您需要在应用程序中使用实际换行符,请将\n替换为\\n。输出将是

console.log('\nFUN, FRIENDLY,  * New PRIVATE PARTY ROOM with stage, 70" Satellite TV, comfortable lounge seating\nExciting Bachelor Parties, Unique Surprise Birthday Parties, Divorce, Retirement....You Own IT!\nParty includes: 90 Minutes Open Bar, Dedicated Waitress, complimentary Dance of choice for the guest of honor, '.trim());