这是我的代码输出,将数据传递给控制台:
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
替换为\
吗?
不太确定解决方案。
答案 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());