我有一个简单的JavaScript语句,它读取一个字符串并根据它包含的内容触发一个URL,但我不确定我是否正确使用了IndexOf
所以我只是想检查一下。 / p>
这是我的代码段:
<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
?
希望这是有意义的!
答案 0 :(得分:4)
来自MDN:
string.indexOf(searchValue[, fromIndex])
返回第一个调用
String
对象中的索引 发生指定值,从fromIndex
开始搜索, 如果找不到值,则返回-1
。
因此,为了检查您的变量是否以"1|Accept"
开头,您应该检查indexOf
是否返回0
。
答案 1 :(得分:3)
0是第一个字母的索引,因此如果您的子字符串出现在字符串的开头,> 0
将不匹配。因此,对于字符串中的任何位置使用> -1
,并且始终在字符串的开头使用== 0
。
答案 2 :(得分:0)
您应该使用== 0
,因为在开头,索引将为0
答案 3 :(得分:0)
mc_u1.indexOf("1|Accept") > 0
也将为true。
如果找不到子字符串,它将为-1
。
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/indexOf