在低版本IE,测试发现IE8及以下版本对js字符串截取函数substr存在兼容性问题。
经过测试发现,substr函数在IE6和IE8下起始位置不支持负数。
例:txt = ‘Leiyu’;
alert(txt.substr(-1,1));
正常情况下(测试通过IE9,IE11和FF)应该输出‘u’,但是在IE6和IE8下却输出的为‘L’。
解决办法:
alert(txt.substr(txt.length-1,1));
还可以使用substring()函数,substring()和substr()的区别是:substring()两个参数分别为起始位置,当开始位置为负数时,从第一个字符开始截取,而substr()的两个参数是起始位置和长度,当开始位置为负数时,(IE9,IE11,FF默认从最后一位从前数,而IE6和IE8则从第一位开始截取)。