您的位置:首页 > Web前端 > JavaScript

Javascript substr方法在某些浏览器下行为出现BUG的补丁代码

2014-01-16 14:48 417 查看
主要思路是使用兼容性和稳定性都保持一致的substring方法重写/覆盖substr

/**
* String.substr() bug fix
* @param start
* @param len
* @returns
*/
String.prototype.substr = function(start, len) {
var str = this;
var l = str.length;
if(start >= l)
return '';
if(arguments.length == 1) {
if(start >= 0 && start < l)
return str.substring(start);
if(start < -length)
return str;
if(start<0 && start >= -l)
return str.substring(l + start);
}
if(len <= 0)
return '';
if(start >= 0 && start < l) {
if(len > l - start)
len = l - start;
return str.substring(start, start + len);
}
if(start < -l) {
if(len >= l)
return str;
return str.substring(0, len);
}
if(start<0 && start >= -l) {
if(len >= -start)
return str.substring(l+start);
return str.substring(l+start, l+start+len);
}
return '';
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐