当前位置: 代码迷 >> JavaScript >> indexOf()反斜杠返回-1 javascript
  详细解决方案

indexOf()反斜杠返回-1 javascript

热度:133   发布时间:2023-06-13 11:43:17.0

为什么javascript为

'aaaaa\\bb'.indexOf('\\\\')

回报

-1

我希望5,但是bi得到了。 它确实不会将反斜杠读作符号,但它将其视为转义字符?

解析字符串常量时,搜索字符串( 'aaaaa\\bb' )中的反斜杠消失; JavaScript解析器总是读取字符串常量中的单个反斜杠作为转义。 你必须加倍它,就像你传递给.indexOf()的字符串一样。

在您的情况下, \\b是退格控制字符的转义符。 即使在类似\\q的情况下,这不是一个“特殊”字符,反斜杠基本上被忽略。

如前所述,它被Javascript解析器解释为控制字符。 如果使用扩展语法创建数组,则将获得\\b作为单个元素而不是两个元素\\b

  str = 'aaaaa\\bb'; console.log([...str]); 

这是因为\\b表示退格控制字符,并在console.log字符串时被忽略。

 const str = '1234\\bb'; console.log(str); 

所以你的字符串中没有反斜杠, indexOf返回-1。

 const str = 'aaaaa\\bb'; console.log(str.indexOf('\\\\')); 

如果要对反斜杠进行编码,则必须使用\\本身来对其进行转义:

 const str = 'aaaaa\\\\bb'; console.log(str); console.log(str.indexOf('\\\\')); 

  相关解决方案