这个javascript函数做什么?
我对/Android/I.test()函数很好奇。如果这是另一个文件中的函数?我猜不是因为下一个函数/iPhone | iPad | iPod/I.test()更奇怪。它是“Android”字符串上的字符串比较吗?有人能给我提供一些文档吗?这是对正则表达式这个javascript函数做什么?,javascript,Javascript,我对/Android/I.test()函数很好奇。如果这是另一个文件中的函数?我猜不是因为下一个函数/iPhone | iPad | iPod/I.test()更奇怪。它是“Android”字符串上的字符串比较吗?有人能给我提供一些文档吗?这是对正则表达式/Android/i的方法调用 /Android/i部分表示一个或“regex”,用于对字符串进行模式匹配 正则表达式有一个名为test的方法,如果匹配,则返回true。你可以将上面的那个帅哥改写为: var n = { And
/Android/i
的方法调用
/Android/i
部分表示一个或“regex”,用于对字符串进行模式匹配
正则表达式有一个名为test
的方法,如果匹配,则返回true
。你可以将上面的那个帅哥改写为:
var n = {
Android: /Android/i.test(navigator.userAgent),
Safari: /iPhone|iPad|iPod/i.test(navigator.userAgent) && !/CriOS|Chrome|Mercury/.test(navigator.userAgent)
};
在Javascript中声明正则表达式的语法是/pattern/flags
,其中pattern
是要比较的模式,flags
是附加选项
Android one非常简单:它只是与字符串Android
进行比较,使用标志i
使其不区分大小写
Safari one稍微复杂一些,因为它使用“交替”来匹配iPhone
、iPad
或iPod
。|
字符分隔正则表达式中的交替字符
值得注意的是,CriOS正则表达式去掉了
i
标志,因为作者希望它区分大小写(默认)。将var n
声明为一个对象,它具有两个属性,分别称为Android
和Safari
当对象被初始化时,两个属性都被执行,返回一个布尔值结果,第一个属性是导航器的用户代理是Android,第二个属性是iPhone、iPad或iPod
因此,您可以期望属性
为真
或假
编辑:如@N3dst4所述,这称为正则表达式。查看他的回复了解更多信息。我想这是为了检查您是在Safari上浏览还是在Android上浏览。我知道正则表达式是什么,但我完全不知道这个synthax。哪种语法?正则表达式的/Android/
语法,或者调用方法的obj.method()
语法/Android/i.test()
只是并排放置的两个语法。我知道正则表达式是什么,但我完全不知道这个syntax。谢谢你的详细解释。@OzanKurt我在某个地方读到,得分最高的StackOverflow得分者经常用一行的答案回答一个问题,然后在获得第一名后展开。信息技术似乎有效;)@N3dst4我最近也一直在使用它很高兴看到一些人获得代表:)@N3dst4西方最快的枪:-)
androidRegex = /Android/i;
safariRegex = /iPhone|iPad|iPod/i;
criOsregex = /CriOS|Chrome|Mercury/;
var n = {
Android: androidRegex.test(navigator.userAgent),
Safari: safariRegex.test(navigator.userAgent) && !criOsregex.test(navigator.userAgent)
};