【发布时间】:2014-01-17 20:48:58
【问题描述】:
我真的把头发拉出来了……
情况是这样的。我有两个javascript字符串如下:
dsName = "Test 1"
replacementString = "Test "
我正在尝试查看dsName是否以replacementString开头,代码如下:
if(dsName.indexOf(replacementString) == 0)
{
// I never get here!
}
indexOf 返回 -1!!这怎么可能?我可以在该行之前在 Chrome 脚本调试中放置一个断点,然后将“dsName.indexOf(replacementString)”粘贴到控制台中,看看它确实返回了 -1。
现在只是为了证明我没有疯,我可以从同一个断点打印出 dsName,它实际上等于“Test 1”,replacementString 确实等于“Test”。这是 Chrome 调试控制台的实际屏幕截图:
如您所见,如果我粘贴文字字符串,它会按预期工作,但如果我使用变量,它就不起作用。我什至尝试过 String(replacementString) 和 replacementString.toString() 来查看是否是类型问题,但它的作用相同。
如果 indexOf 的参数是文字字符串,它就像它工作,但如果它是一个字符串变量,它就不行。
我疯了吗,我错过了什么愚蠢的东西吗?或者这可能是 Chrome 中的错误?
【问题讨论】:
-
当然可以jsfiddle.net/mplungjan/g6sGa - Chrome OSX
-
我刚刚在 Chrome v. 31.0.1650.63 中尝试过,效果很好。
-
replacementString.chatCodeAt(0)带给你什么 -
您的一个字符串中可能存在不可打印的字符。它的作品
-
33.0.1750.18 中无复制
标签: javascript string google-chrome indexof