JavaScript:使用子字符串获取字符串的一部分

时间:2011-12-17 04:17:40

标签: javascript

我在JavaScript中有一个变量:

var text = "i HATE you[i LOVE you]"

以下代码源自VB。我已经对W3Schools进行了检查,但我不明白为什么它不起作用。

var test = text.Substring(text.IndexOf("[") + 1, text.IndexOf("]") - text.IndexOf("[") - 1);
document.write(test);

4 个答案:

答案 0 :(得分:3)

Javascript区分大小写,因此它没有任何SubstringIndexOf方法,它有substringindexOf方法。但是,.NET方法SubString对应于Javascript方法substr

var test = text.substr(text.indexOf("[") + 1, text.indexOf("]") - text.indexOf("[") - 1);

答案 1 :(得分:1)

第二个参数是“结束索引”,而不是“长度”。或者你可以使用正则表达式。

答案 2 :(得分:1)

您当前解决方案失败的原因:

  • javascript区分大小写,您尝试拨打String.IndexOf无法使用,而您必须将其写为indexOf

    < / LI>
  • 与上一个列表条目相同的原因,SubString应该写为substring,在您使用它的方法中,似乎您正在寻找substr(因为您的参数)。

替代解决方案

有几种方法可以简化在[]之间获取文字的方法,我在下面写了三个例子。

 text.substring (text.indexOf ('[')+1, text.lastIndexOf (']'));

 text.substr (n=text.indexOf('[')+1, text.indexOf (']')-n);

 text.split (/\[|\]/)[1];

 text.match (/\[(.*?)\]/)[1];

答案 3 :(得分:0)

不确定您期望的是什么输出,但显而易见的问题是您的外壳是错误的。方法名称区分大小写。你需要这个:

text.substring(text.indexOf("[") + 1, text.indexOf("]") - text.indexOf("[") - 1);