我是/ipad/i.test(navigator.userAgent.toLowerCase())
语法新手.我知道它对于ipad返回true的结果,对于剩余的浏览器,它返回false.
请任何机构解释/ipad/i
它的含义和工作原理
这是一个更简单的细分/ipad/i.test(navigator.userAgent.toLowerCase())
:
var myRegex = new RegExp("ipad", "i");; var result = myRegex.test(navigator.userAgent.toLowerCase());
这RegExp
是JavaScript的RegExp对象的构造函数.
它ipad
使用i
标志创建一个正则表达式来匹配字符串,该标志告诉RegExp对象忽略要匹配的字符串的大小写.正则表达式是用于匹配字符串中的字符组合的模式.
然后test()
调用RegExp 的方法,并将浏览器的useragent字符串传递给它.test()方法尝试匹配useragent字符串ipad
,如果找到true
将返回.工作演示:http://jsfiddle.net/8mzTE/.
用户代理字符串标识您的浏览器并提供其详细信息:
当您访问网页时,浏览器会将用户代理字符串发送到托管您正在访问的网站的服务器.此字符串指示您正在使用的浏览器,版本号以及有关系统的详细信息,例如操作系统和版本.Web服务器可以使用此信息提供针对特定浏览器定制的内容.
在JavaScript中,可以使用forragent字符串访问navigator.userAgent
.
/ipad/i
是一个JavaScript Regular Expression文字,匹配包含的任何字符串ipad
(i
最后是一个执行不区分大小写的比较的指令).test()
如果匹配,则该方法返回true.
正则表达式有多种语言版本(PERL,PHP,JavaScript等),它们主要用于将字符串与简单到复杂的模式匹配.
navigator
是一个全局对象,它包含有关运行脚本的应用程序(例如浏览器)的信息.navigator.userAgent包含用户代理字符串.对于iPad,用户代理字符串如下所示:
Mozilla/5.0(iPad ; CPU OS 4_3_2,如Mac OS X; en-us)AppleWebKit/533.17.9(KHTML,与Gecko一样)Version/5.0.2 Mobile/8H7 Safari/6533.18.5
你会注意到它中含有"iPad"这个词.