function decinumber(y){
var x = document.getElementById("areafield");
if (y.match("del")){
x.value = x.value.substr(0,(x.value.length-1)); return;
}
}
我想从x字符串中删除最后一个字符。现在这里的代码实际上有效,但我的问题是为什么这个有效?这听起来很奇怪,但我不知道为什么。 因为,在字符串中第一个字符位于位置0而不是位置1,那么该字符串的总长度减去1给出了该字符串中的最后一个字符,而不是最后一个字符。
例如,考虑这个字符串 - “fireblow”
该字符串的长度为8.“f”位于0位置,因此8-1为7,即该字符串中最后一个字符“w”的位置不是“o”。
答案 0 :(得分:1)
第二个参数指出要抓取的字符数。由于你想要获取整个X减去一个字符的字符串,你可以获取字符串的长度并减去它的1。
所以现在你的子串状态......
从位置0开始从此字符串中抓取7个字符。
要对此进行测试并巩固您的理解,请尝试不同的组合。从位置3开始,只取两个字符。
答案 1 :(得分:0)
substr(start_index,length);
如果你做("areafield").length
,你会得到9.如果你做("a").length
,你得到1.
所以,如果我们从第一个位置(索引0)的字符开始,然后去8个字符,我们得到
a r e a f i e l
1 2 3 4 5 6 7 8
或者("fireblow").length
我们得到8,所以.substr(0,(x.value.length-1))
f i r e b l o
1 2 3 4 5 6 7
答案 2 :(得分:0)