有礼彬
2016-09-06 15:00
若
startPos为负数且绝对值大于字符串长度,为什么结果不是
startPos为负数且绝对值大于字符串长度,startPos为0。
结果却是:”o Worl“,为什么不是“Hello ”。
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>
<script type="text/javascript">
var mystr="Hello World!";
document.write(mystr.substr(6) + "<br />");
document.write(mystr.substr(2,6) + "<br />");
document.write( mystr.substr(0,6) + "<br />" );
document.write(mystr.substr(-2,6) + "<br />");
document.write(mystr.substr(-8,6) + "<br />");
</script>
</head>
<body>
</body>
</html>
substr是从指定的起始位置截取指定长度,这个是从左往右截取的,只用考虑初始位置,-8的位置是o,然后考虑截取长度,往右截取6个字符,就是o Worl,不会因为你人为计数从最后一个数往左倒数而截取方向变成从右往左,所以不是Hello。
我现在已不纠结那个问题了
没有一个人能解释你的问题 我也很想知道是为什么 关注~
substr(<字符表达式>、<数值表达式1>) -8是从!往前面开始截取,6是取几位数
document.write(mystr.substr(-16,5) + "<br />"); //结果就是 hello
第七章还没有学不知道这样说对不对啊 ,如果说错了就是扰乱你的思路了
document.write(mystr.substr(-8,6) + "<br />");从后面倒数8位 (!drlow o)就是到o哪里,然后就是o Worl;
-8只是说从后面数起来定位,但是截取的时候还是往前截取的,不是往后
JavaScript进阶篇
468060 学习 · 21891 问题
相似问题