1

我有一个脚本(用另一种语言),它生成有效的 JavaScript 片段,然后在浏览器中执行。生成的 javascript 看起来像这样:

my_function(123,"long string with lots of weird characters");

“长字符串”可能包含引号、撇号、反斜杠等……例如,“长字符串”可以是以下任何一种:

hello"there
hello'there
hello\\\\"\\\'\'\\\'"'\"\\"""there

所有这些字符都应该按原样传递给 my_function(),而不假设反斜杠是转义某些东西的特殊字符。

javascript 是否有某种独特的“标签”来分隔长字符串文字,其中不应“转义”或“解释”任何内容?例如类似这样的构造:

my_function(123, [<STRING_START>]long string with lots of weird characters[<STRING_END>]);

我需要这样的东西,我可以保证我的长字符串不会包含字符串 "][<STRING_END>]" 所以这会起作用。但是我不能轻易保证它不会包含引号和/或反斜杠。

我知道我可以使用例如普通引号来分隔我的字符串并以编程方式在字符串内的所有必需字符之前添加反斜杠(在我的 javascript 生成器中),但是上面显示的“标签”(或类似的东西)的存在将使生活更轻松为了我。

4

1 回答 1

0

你可以使用String.raw

它用于获取模板文字的原始字符串形式,即处理替换(例如 ${foo}),但不处理转义(例如 \n)。

var hello= String.raw` there
hello'there
hello\\\\"\\\'\'\\\'"'\"\\"""there `;
于 2021-04-28T10:28:38.387 回答