你好我有下一个JS代码(这段代码不是我自己的)
function somename(f)
var procName = "";
var procParams = new Array();
var parseEl = "";
var parseEls = new Array();
var parseInd = 0;
var procParamsInd = 0;
var IsValRead = false;
for (i = 0; i < f.length; i++) {
if (f[i] == "(")
break;
else
procName = procName + f[i];
}
}
我会重做它以更好的方式在“(”之前找到数据,但我更有道理为什么在IE9中所有浏览器中的procName变量总是未定义的,并且运行良好。
答案 0 :(得分:1)
在(
之前获取子字符串的更好方法是this:
var f = "name(2,4,5)",
procName = f.slice(0, f.indexOf('(')); //slice from start until before "("
console.log(procName); //name
答案 1 :(得分:1)
我有一个模糊的回忆,至少某些版本的IE不支持索引来访问字符串字符。尝试使用charAt;或者更好的算法。几乎可以肯定f [x]导致你的未定义。