为什么 n 在以下实例中提供 0 :
var str = '\\nvga032.bmwgroup.net\QXE7868\Daten\IE\3_bookmarks.zzz'
var n = str.indexOf("\\");
alert(n) //0
反斜杠的转义字符肯定是
'\\'
我错过了什么吗?我在最后一个位置寻找单个反斜杠。我也试过 lastIndexOf ,这也给了零。这两个人是不是搞乱了?
答案 0 :(得分:1)
indexOf
匹配字符串而不是用于创建它的JavaScript源代码。
\
个字符开始转义序列。
\\
是“反斜杠”的转义序列。
分配给str
的字符串以\\
开头,在数据中将反斜杠放在第0位。
传递给indexOf
的字符串完全由\\
组成,它匹配数据中的第一个反斜杠。
如果要在字符串中描述转义序列,可以使用\\\\
(即反斜杠的转义序列,后跟反斜杠的另一个转义序列,导致数据由两个反斜杠组成)。
答案 1 :(得分:1)
"\\"
将被解析为单个黑名单。然后indexOf将查找单个反斜杠,它恰好位于字符串的开头(n = 0)。
如果你想搜索两个反斜杠,你必须indexOf("\\\\")
(四个反斜杠,它将被解析为两个字面反斜杠。)
答案 2 :(得分:1)
您的“str”变量很可能不包含您的预期。改为写:
var str = '\\\\nvga032.bmwgroup.net\\QXE7868\\Daten\\IE\\3_bookmarks.zzz'
var n = str.lastIndexOf("\\");