startsWith未返回预期值

时间:2015-05-22 19:55:35

标签: javascript string

我找到另一个问题来帮助我找出一个字符串是否以另一个字符串here开头。我用Mark Byers回答。

但是,我遇到了一个使用它的问题。由于某种原因,它没有找到字符串并返回-1

var response = doWork();

alert(response.lastIndexOf('/apex', 0));
if (response.lastIndexOf('/apex', 0) === 0)
  window.location.href = response;
else
  alert('test' + response + 'test');

比较返回-1,但最后的警报返回test/apex/IFE__IFE_ViewQuote?Id=a01i000000XobwRAARtest。我做错了吗?

我在上面的内容后添加了一个测试:

var response2 = '/apex/IFE__IFE_ViewQuote?Id=a01i000000Xoc4tAAB'; 
alert('index = ' + response2.lastIndexOf('/apex', 0));

这返回" index = 0"。

1 个答案:

答案 0 :(得分:0)

所以,我想我找到了一个解决方案,HOPEFULLY将适用于所有情况。我用btoa来弄清楚' / apex'将是并采取响应的这个和btoa之间匹配的字符。他们匹配到了L2FwZXg' (最后有一个额外的=)。这似乎有效。

if (btoa(response).lastIndexOf('L2FwZXg', 0) === 0)