避免在javascript中转义特殊字符

rak*_*aky 3 javascript

我的服务器返回值为support\testing.当我在客户端获得此值时,可以将其转义为support testing.\t作为标签空间进行转义.

如何避免在JavaScript中转义特殊字符?

Spu*_*ley 11

您的服务器需要输出正确转义的字符串.

在这种情况下,您需要在输出中使用反斜杠字符; 反斜杠是一个特殊字符,因此应该进行转义.

反斜杠的转义序列是\\(即两个反斜杠),但您不需要考虑特定的转义码 - 如果您输出的是JS数据,则应该使用适当的转义输出整个字符串,通常意味着你应该使用JSON编码.

如今,大多数服务器语言都提供JSON编码作为内置功能.您没有指定服务器使用的语言,但是例如,如果它是用PHP编写的,您将输出字符串json_encode($string)而不是直接输出$string.其他语言提供类似的功能.这不仅可以保护您免受破坏的反斜杠字符的影响,还可以保护您的其他错误,例如字符串中的引号或换行符,如果您将它们作为非转义字符串放入Javascript代码中,也会导致错误.


小智 5

您可以使用标记的模板文字

var str = (s => s.raw)`support\testing`[0]
Run Code Online (Sandbox Code Playgroud)

匿名箭头函数将作为标签并s.raw包含原始输入