javascript子字符串


73

最黑暗的东西!以下代码打印出“ llo”而不是预期的“ wo”。对于其他一些数字,我得到了如此令人惊讶的结果。我在这里想念什么?

alert('helloworld'.substring(5, 2));

Answers:


103

您感到困惑,substring()并且substr()substring()需要两个索引,而不是offset和length。在您的情况下,索引为5和2,即将返回字符2..4,因为排除了较高的索引。


第二个答案更好。它有例子
内森

54

您可以在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'

16

检查substring 语法

子字符串(从,到)

必填。开始提取的索引。第一个字符在索引0处

可选。停止提取的索引 。如果省略,它将提取字符串的其余部分

我同意你,这有点奇怪。我自己都不知道。

你想做的是

alert('helloworld'.substring(5, 7));

2
alert('helloworld'.substring(5, 2));

上面的代码是错误的,因为第一个值是起点,从焦炭5分结束point.Eg移动o并进入到char 2这是l等都将得到llo所以你已经告诉它倒退了。

你想要的是

alert('helloworld'.substring(5, 7));


0

这就是我所做的...

var stringValue = 'Welcome to India';

// if you want take get 'India' 
// stringValue.substring(startIndex, EndIndex)
   stringValue.substring(11, 16); // O/p 'India'
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.