I've got a simple JavaScript statement that reads a string and fires off a URL based of what it contains but I'm not sure if I've used IndexOf correctly so I just wanted to check.
Here is my code snippet:
<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>
As you can see from the code above, what I'm trying to do is based on the contents of the variable mc_u1 fire off a URL (which are different though I've just masked them for obvious reasons).
My question is, if the mc_u1 variable begins with say 1|Accept should I be using > -1 in the Javascript Statement or > 0?
Hope this is making sense!
From MDN:
string.indexOf(searchValue[, fromIndex])Returns the index within the calling
Stringobject of the first occurrence of the specified value, starting the search atfromIndex, returns-1if the value is not found.
So in order to check if your variable starts with "1|Accept" you should check if indexOf returns 0.
0 is the index of the first letter, so if your substring appears at the beginning of the string, > 0 will not match. So use > -1 for anywhere in the string and == 0 for always at the start of the string.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With