我有以下字符串:
school\boy
school\class
school\playground
school\teacher
school\subject我想在\,即,boy,class,playground,teacher,subject之后提取子字符串。此外,school仍然是所有字符串的常量子字符串。
我知道解决方案是添加一个额外的反斜杠,如school\\boy、school\\teacher等,因为它将\b、\t视为一个特殊字符,但是上面的数据来自back-end服务,因此手动为每个字符串添加额外反斜杠的解决方案是不可行的。
我的问题是如何通过字符串函数或regex插入这个额外的\反斜杠,并在\后面提取子字符串?
我试过这样做:
var str = "school\boy";
var newstr = str.slice(0,6) + '\\' + str.slice(6); \\ newstr = school\\boy
console.log(newstr.split('\\\\')[1]);但它给了undefined。如果我用一个反斜杠进行拆分,它将输出作为\boy,这是不正确的。我不明白为什么split不能工作。即使在字符串中添加了额外的\后字符'l'之后,它仍然将'l'视为特殊字符。
发布于 2020-05-07 08:35:39
我假设后端正在生成JavaScript代码(只有一个反斜杠)。最好的做法是重新配置后端.
还可以使用fetch()执行GET请求以获得不需要转义的字符串。
但是,如果由于某些原因不能这样做,则可以使用String.raw()
const str = String.raw `school\boy`; // Yes, without parenthesis.
console.log(str.split("\\")[1])
但是,如果您使用String.raw(),请确保在反斜杠之后有一些内容,因为\`将而不是终止字符串!
https://stackoverflow.com/questions/61652758
复制相似问题