我在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);
答案 0 :(得分:3)
Javascript区分大小写,因此它没有任何Substring
或IndexOf
方法,它有substring
和indexOf
方法。但是,.NET方法SubString
对应于Javascript方法substr
:
var test = text.substr(text.indexOf("[") + 1, text.indexOf("]") - text.indexOf("[") - 1);
答案 1 :(得分:1)
第二个参数是“结束索引”,而不是“长度”。或者你可以使用正则表达式。
答案 2 :(得分:1)
您当前解决方案失败的原因:
javascript区分大小写,您尝试拨打String.IndexOf
无法使用,而您必须将其写为indexOf
。
与上一个列表条目相同的原因,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);