我有一个基于OS
版本号的条件逻辑。在浏览器中useragent
字符串。
这是我试过的代码。
var useragent = "Linux; U; Android 2.2.1; en-gb; HTC_DesireZ_A7272 Build/FRG83D";
if((/2.3/).test(useragent)){
alert("2");
}
else if((/3./).test(useragent)){
alert("3");
}
else if((/4./).test(useragent)){
alert("4");
}
else {
alert("5");
}
我总是收到3
的提醒。
我尝试用test
替换indexOf
方法,然后收到5
的提醒。
有人可以解释为什么(/3./).test(useragent)
会返回true吗?
答案 0 :(得分:1)
你总是得到这个,因为你的正则表达式/3./
意味着 - 匹配3及其后面的任何符号。你必须逃避.
。
例如,尝试/3\./
,分别为其他人:/2\.3/
,/4\./
。
您的代码看起来应该是这样的:
var useragent = "Linux; U; Android 2.2.1; en-gb; HTC_DesireZ_A7272 Build/FRG83D";
if ((/Android 2\./).test(useragent)){
alert("2");
} else if((/Android 3\./).test(useragent)){
alert("3");
} else if((/Android 4\./).test(useragent)){
alert("4");
} else {
alert("5");
}