在低版本IE,測試發(fā)現(xiàn)IE8及以下版本對(duì)js字符串截取函數(shù)substr存在兼容性問題。
經(jīng)過測試發(fā)現(xiàn),substr函數(shù)在IE6和IE8下起始位置不支持負(fù)數(shù)。
例:txt = ‘Leiyu’;
alert(txt.substr(-1,1));
正常情況下(測試通過IE9,IE11和FF)應(yīng)該輸出‘u’,但是在IE6和IE8下卻輸出的為‘L’。
解決辦法:
alert(txt.substr(txt.length-1,1));
還可以使用substring()函數(shù),substring()和substr()的區(qū)別是:substring()兩個(gè)參數(shù)分別為起始位置,當(dāng)開始位置為負(fù)數(shù)時(shí),從第一個(gè)字符開始截取,而substr()的兩個(gè)參數(shù)是起始位置和長度,當(dāng)開始位置為負(fù)數(shù)時(shí),(IE9,IE11,F(xiàn)F默認(rèn)從最后一位從前數(shù),而IE6和IE8則從第一位開始截。