Javascript substr问题
我正在尝试创建一个跨浏览器animationListener,但是Javascript substr问题,javascript,Javascript,我正在尝试创建一个跨浏览器animationListener,但是substr函数有问题 function animationEventListener(elem, listener, callback){ if(!elem){return;} if(listener.length < 0){ console.error("Add event type listener"); } listener = listener.toLowerCase();
substr
函数有问题
function animationEventListener(elem, listener, callback){
if(!elem){return;}
if(listener.length < 0){ console.error("Add event type listener"); }
listener = listener.toLowerCase();
var _prefix = ["", "o", "webkit", "MS"];
var _anmkeyword = new String("animation");
var _keywordlength = _anmkeyword.length;
var _nlistener;
for(var i = 0; i < 4; i++){
if(_prefix[i] == "MS" || _prefix[i] == "webkit"){
var _ol = _keywordlength + 1;
_nlistener = listener.substr(0, 1).toUpperCase()
+ listener.substr(1, listener.length - (listener.length - _keywordlength)-1)
+ listener.substr(9, 10).toUpperCase()
+ listener.substr(_keywordlength+1, listener.length);
}
console.log(_prefix[i] + listener + "\n" + _nlistener);
}
}
为什么?函数的第二个参数是要提取多少字符(长度)。第一个参数设置从何处开始。你可以读更多 所以你的代码行是:
listener.substr(9,10)代码>基本上是说“从第9个索引中给我10个字符”。但是,由于第9个索引后没有10个字符,因此该命令将返回它能返回的所有内容,即字符串的其余部分
要在第9个索引后仅提取一个字符,您只需使用以下命令:
listener.substr( 9, 1 );
或者,如果要提取两个索引之间的字符串,可以使用:
substr
函数的第二个参数是要提取的字符数(长度)。第一个参数设置从何处开始。你可以读更多
所以你的代码行是:listener.substr(9,10)代码>基本上是说“从第9个索引中给我10个字符”。但是,由于第9个索引后没有10个字符,因此该命令将返回它能返回的所有内容,即字符串的其余部分
要在第9个索引后仅提取一个字符,您只需使用以下命令:
listener.substr( 9, 1 );
或者,如果要提取两个索引之间的字符串,可以使用:
和之间的区别是:
因此,在您的情况下,您可以使用:
listener.substr(9, 1);
或
和之间的区别是:
因此,在您的情况下,您可以使用:
listener.substr(9, 1);
或
您希望得到什么结果?您可能希望使用substring
方法。在这段代码中,substr需要一个字母“e”,但他返回“end”,为什么?你想要:listener.substr(9,1)天啊,谢谢你!你能分辨出substr和substring的区别吗?你期望得到什么结果?你可能想使用substring
方法。在这段代码中,substr需要一个字母“e”,但他返回“end”,为什么?你想要:listener.substr(9,1)天啊,谢谢你!你们能分辨出substr和substring的区别吗?
listener.substr(9, 1);
listener.substring(9, 10);