我有以下字符串。
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
不起作用。它仍然在治疗 \b
作为一个特殊的字符,即使在字符后面添加了额外的/。'l'
字符串中。
我假设你的后台正在生成JavaScript代码(只有一个反斜杠)。最好的办法是重新配置你的后端。
你也可以使用 fetch()
执行 GET
请求来获取字符串,它不需要转义。
然而,如果出于某些原因,你不能这样做,你可以使用 String.raw()
:
const str = String.raw `school\boy`; // Yes, without parenthesis.
console.log(str.split("\\")[1])
但如果你使用 String.raw()
确保在反斜杠后面有一些东西,如 \`
会 不 终止字符串