indexOf() 反斜杠 returns -1 javascript
indexOf() backslash returns -1 javascript
为什么 javascript 为
'aaaaa\bb'.indexOf('\')
returns
-1
?
我希望有 5 个,但我明白了。它确实不会将反斜杠读取为符号,而是将其读取为转义字符?
搜索字符串中的反斜杠('aaaaa\bb'
)在解析字符串常量时消失; JavaScript 解析器 总是 读取字符串常量中的单个反斜杠作为转义符。你必须将它加倍,就像你在传递给 .indexOf()
.
的字符串中所做的那样
在您的例子中,\b
是退格控制字符的转义符。即使在像 \q
这样不是 "special" 字符的情况下,反斜杠也基本上被忽略。
如前所述,它被 Javascript 解析器解释为控制字符。
如果您使用扩展语法创建一个数组,您将得到一个 \b
作为单个元素,而不是两个元素 \
和 b
str = 'aaaaa\bb';
console.log([...str]);
这是因为 \b
代表退格控制字符,当您 console.log
您的字符串时会被忽略。
const str = '1234\bb';
console.log(str);
所以你的字符串中没有反斜杠,indexOf
returns -1.
const str = 'aaaaa\bb';
console.log(str.indexOf('\'));
如果要对反斜杠进行编码,则必须使用 \
本身对其进行转义:
const str = 'aaaaa\bb';
console.log(str);
console.log(str.indexOf('\'));
为什么 javascript 为
'aaaaa\bb'.indexOf('\')
returns
-1
?
我希望有 5 个,但我明白了。它确实不会将反斜杠读取为符号,而是将其读取为转义字符?
搜索字符串中的反斜杠('aaaaa\bb'
)在解析字符串常量时消失; JavaScript 解析器 总是 读取字符串常量中的单个反斜杠作为转义符。你必须将它加倍,就像你在传递给 .indexOf()
.
在您的例子中,\b
是退格控制字符的转义符。即使在像 \q
这样不是 "special" 字符的情况下,反斜杠也基本上被忽略。
如前所述,它被 Javascript 解析器解释为控制字符。
如果您使用扩展语法创建一个数组,您将得到一个 \b
作为单个元素,而不是两个元素 \
和 b
str = 'aaaaa\bb';
console.log([...str]);
这是因为 \b
代表退格控制字符,当您 console.log
您的字符串时会被忽略。
const str = '1234\bb';
console.log(str);
所以你的字符串中没有反斜杠,indexOf
returns -1.
const str = 'aaaaa\bb';
console.log(str.indexOf('\'));
如果要对反斜杠进行编码,则必须使用 \
本身对其进行转义:
const str = 'aaaaa\bb';
console.log(str);
console.log(str.indexOf('\'));