JavaScript的子string
最不老的事情! 下面的代码打印出“llo”而不是预期的“wo”。 我得到了一些其他数字这样令人惊讶的结果。 我在这里错过了什么?
alert('helloworld'.substring(5, 2));
你令人困惑的substring()
和substr()
: substring()
期望两个索引,而不是偏移量和长度。 在你的情况下,索引是5和2,即字符2..4将被返回,因为较高的索引被排除。
你有三个select在Javascript中:
//slice //syntax: string.slice(start [, stop]) "Good news, everyone!".slice(5,9); // extracts 'news' //substring //syntax: string.substring(start [, stop]) "Good news, everyone!".substring(5,9); // extracts 'news' //substr //syntax: string.substr(start [, length]) "Good news, everyone!".substr(5,4); // extracts 'news'
检查substring
语法 :
子串(从,到)
从必需。 索引从哪里开始提取。 首字符在索引0处
到可选。 索引在哪里停止提取 。 如果省略,则提取string的其余部分
我会授予你有点奇怪 不知道我自己。
你想要做的是
alert('helloworld'.substring(5, 7));
alert('helloworld'.substring(5, 2));
上面的代码是错误的,因为第一个值是到终点的起始点。例如,从char 5这是o
并且转到char 2这是l
所以会得到llo
所以你已经告诉它向后。
你想要的是
alert('helloworld'.substring(5, 7));
请参阅以下语法:
str.substring(indexA, [indexB])
如果indexA > indexB
, substring()
函数的作用就好像参数被颠倒了一样。
考虑这里的文档: https : //developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/substring
这是我所做的,
var stringValue = 'Welcome to India'; // if you want take get 'India' // stringValue.substring(startIndex, EndIndex) stringValue.substring(11, 16); // O/p 'India'