我试图用JavaScript编写一个函数convertStr
,当与console.log(convertStr(str))
一起使用时,它会打印字符串。
输入和输出的一些示例
str = '\'"\n\\'
console.log(convertStr(str))
> '\'"\n\\'
为此,convertStr
应将'\'"\n\\'
转换为'\'\\\'"\\n\\\\\''
。
让我们考虑一个更简单的例子
str = '\''
convertStr(str) =====> '\'\\\'\''
console.log(convertStr(str)) =====> '\''
这里的第一个挑战是要知道我们是否用'
或"
括起str。如果不做出假设,我认为这是不可能的。
我们假设使用str
包含'
。
另一个挑战是需要处理很多案件。
搜索网页后,我尝试了一些解决方案
我在JSON.stringify
str
console.log(JSON.stringify('\"')) =====> "\""
console.log(JSON.stringify('\'')) =====> "'"
对于带单引号的情况,此解决方案失败。当我们使用unicode转义时,这也失败了
console.log(JSON.stringify('\u2260') ====> "≠"
我尝试使用str.replace(regex, replacestr)
但无法找到适用于所有情况的解决方案,例如unicode或\x41
或\0
等内容。