indexOf中的反斜杠转义

时间:2014-11-17 14:33:46

标签: javascript

为什么 n 在以下实例中提供 0

var str = '\\nvga032.bmwgroup.net\QXE7868\Daten\IE\3_bookmarks.zzz'

var n = str.indexOf("\\");

alert(n) //0

反斜杠的转义字符肯定是

'\\'

我错过了什么吗?我在最后一个位置寻找单个反斜杠。我也试过 lastIndexOf ,这也给了零。这两个人是不是搞乱了?

3 个答案:

答案 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("\\");