gpt4 book ai didi

Javascript substr 问题

转载 作者:行者123 更新时间:2023-11-30 07:04:59 25 4
gpt4 key购买 nike

我正在尝试创建一个跨浏览器的 animationListener,但 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 = "animationend";
listener.substr(9, 10); // returns "end";

为什么?

最佳答案

substr 函数的第二个参数是要提取的字符数(长度)。第一个参数设置从哪里开始。您可以阅读更多here in the documentation .

所以你的代码行:listener.substr( 9, 10 ); 基本上是说“给我第 9 个索引中的 10 个字符”。然而,由于在第 9 个索引之后根本没有 10 个字符,该命令将返回它所能返回的所有内容,即字符串的其余部分。

要仅提取第 9 个索引后的一个字符,您只需使用以下命令:

listener.substr( 9, 1 );

或者,如果您想在两个索引之间提取一个字符串,您可以使用substring() function :

listener.substring( 9, 10 );

关于Javascript substr 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18300319/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com