为了账号安全,请及时绑定邮箱和手机立即绑定

从后往前提取应该怎么做

https://img1.sycdn.imooc.com//5bde6ecb0001f55e07160371.jpg如果我想用从后往前提取字符的话,这样子为什么不行,我只得到了一个!号

<!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(-1, 6)+ "<br />");document.write(mystr.substr(0, mystr.indexOf("o")+1));</script></head><body></body></html>


正在回答

8 回答

var mystr = "Hello World!";    
console.log(mystr.substr(0,5))  //正数-->取Hello    
console.log(mystr.substr(-(mystr.length),5))  //负数-->取Hello


0 回复 有任何疑惑可以回复我~

<!DOCTYPE HTML>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<title>string对象</title>

<script type="text/javascript">

var mystr="Hello World!"

document.write(mystr.substring(mystr.indexOf("W"),mystr.indexOf("!")+1) + "<br />");

document.write(mystr.substring(mystr.indexOf("H"),mystr.indexOf("o")+1));

</script>

</head>

<body>

</body>

</html>


0 回复 有任何疑惑可以回复我~
#1

一如忘词

发错了,应该是这个document.write(mystr.substr(-(mystr.length-mystr.indexOf('W')))+"<br/>"); document.write(mystr.substr(-(mystr.length-mystr.indexOf('!')-1),6));
2019-08-26 回复 有任何疑惑可以回复我~

<!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!";


//先得到想截取字段的正序

var mystr1=mystr.substr(-6);


//截取字段逆序排列

var mystr2="";

for(var i=mystr1.length-1;i>=0;i--){

    mystr2+=mystr1.substr(i,1);

}

document.write(mystr2+ "<br />");

document.write(mystr.substr(-20,5));

</script>

</head>

<body>

</body>

</html>


我上网查了下,js好像不提供逆序方法(或是没查到)。不过可以用我这个方法简单实现

0 回复 有任何疑惑可以回复我~

document.write(mystr.substr(-6));这个就可以啦,-1是!-6就是H啦,然后从H一直截取到最后!

1 回复 有任何疑惑可以回复我~

document.write(mystr.substr(mystr.length-6)+ "<br />");

0 回复 有任何疑惑可以回复我~

从后往前提取,length方法是没用的,只能用一个负数表示,,而且顺序也是从左往右,例如字符串'ddrop',从后往前提取使用substr()方法,substr(-3),返回的是rop,现在明白了吧。

0 回复 有任何疑惑可以回复我~

并不是严格意义上的从后提取,length只能为正数,要这样写,mystr.substr(-6, 6)。他只能从前往后提取字符,就算你的起始位置是最后一个字符。这跟python不一样。python从后提取方便很多,给一个起始位置,给一个步距(隔几步提取字符),就能从右往左提取字符。

0 回复 有任何疑惑可以回复我~

用两个负数试试

0 回复 有任何疑惑可以回复我~
#1

qq_慕桂英8249707 提问者

不行,
2018-11-05 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

从后往前提取应该怎么做

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信