【发布时间】:2015-10-14 18:27:17
【问题描述】:
我今天有点困惑,"string".indexOf(''); 总是返回0,但我希望-1(对于false);相反,"string".lastIndexOf(''); 总是返回 6
lastIndexOf 更容易理解,因为字符串长度为 6 个字母("string".length,零索引返回 5)但我在 ECMAscript 规范中看不到任何地方(5.1 或 6.0 ) 描述 为什么 '' 将被视为单词/字符边界
这里到底发生了什么?
【问题讨论】:
-
是的,
''被视为单词/字符边界。 -
indexOf()返回找到的匹配项的第一次 次出现,并仅在根本找不到字符串时返回-1。 -
''被视为......嗯......一个空字符串。另一个字符串中第一次出现的空字符串正好在它的开头。 -
“重复”是关于 Java 的。这个问题要求澄清规范,而不是出于模糊的原因。所以我投票决定重新开放并添加 [language-lawyer] 标签。
标签: javascript string standards language-lawyer ecma262