JavaScript 中 IndexOf 的正确用法
2012-05-21
5481
我有一个简单的 JavaScript 语句,它读取一个字符串并根据其包含的内容触发 URL,但我不确定我是否正确使用了
IndexOf
,所以我只是想检查一下。
这是我的代码片段:
<script type="text/javascript">
var mc_u1 = "somevariable";
if (mc_u1.indexOf("1|Accept") > 0) {
document.writeln("<img src=\"https://www.someurl1.com\">");
}
if (mc_u1.indexOf("1|Refer") > 0) {
document.writeln("<img src=\"https://www.someurl2.com\">");
}
if (mc_u1.indexOf("2|Accept") > 0) {
document.writeln("<img src=\"https://www.someurl3.com\">");
}
if (mc_u1.indexOf("2|Refer") > 0) {
document.writeln("<img src=\"www.someurl4.com\">");
}
</script>
从上面的代码中可以看出,我试图做的是根据变量
mc_u1
的内容触发一个 URL(它们是不同的,但出于显而易见的原因我只是屏蔽了它们)。
我的问题是,如果
mc_u1
变量以
1|Accept
开头,我应该在 Javascript 语句中使用
> -1
还是
> 0
?
希望这是有意义的!
3个回答
来自 MDN :
string.indexOf(searchValue[, fromIndex])
Returns the index within the calling
String
object of the first occurrence of the specified value, starting the search atfromIndex
, returns-1
if the value is not found.
因此,为了检查您的变量是否以
“1|Accept”
开头,您应该检查
indexOf
是否返回
0
。
VisioN
2012-05-21
0 是第一个字母的索引,因此如果您的子字符串出现在字符串的开头,则
> 0
将不匹配。因此,在字符串中的任意位置使用
> -1
,在字符串的开头始终使用
== 0
。
Andy E
2012-05-21
您应该使用
== 0
,因为一开始索引为 0
Parth Thakkar
2012-05-21