在发表答案时遇到了这个问题,不知道为什么会发生。
代码如下:
var s = "aaaaaX..";
var a = s.slice(1);
a = a.slice( 0, a.lastIndexOf("X") );
var b = s.slice(1).slice( 0, s.lastIndexOf("X") );
var c = s.slice(1).slice( 0, s.lastIndexOf("X") - 1);
console.log(c);
为什么a
不等于b
?为什么-1
要加到c == a
上去?
演示:http://jsfiddle.net/mb974/
这是因为您已经从s
中删除了第一个字符并将其分配给a
变量。所以index值比没有删除第一个字符的字符串中的index值低1
var a = s.slice(1);
a = a.slice( 0, s.lastIndexOf("X") );
var b = s.slice(1).slice( 0, s.lastIndexOf("X") );
// a == b