Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
这个javascript函数做什么?_Javascript - Fatal编程技术网

这个javascript函数做什么?

这个javascript函数做什么?,javascript,Javascript,我对/Android/I.test()函数很好奇。如果这是另一个文件中的函数?我猜不是因为下一个函数/iPhone | iPad | iPod/I.test()更奇怪。它是“Android”字符串上的字符串比较吗?有人能给我提供一些文档吗?这是对正则表达式/Android/i的方法调用 /Android/i部分表示一个或“regex”,用于对字符串进行模式匹配 正则表达式有一个名为test的方法,如果匹配,则返回true。你可以将上面的那个帅哥改写为: var n = { And

我对/Android/I.test()函数很好奇。如果这是另一个文件中的函数?我猜不是因为下一个函数/iPhone | iPad | iPod/I.test()更奇怪。它是“Android”字符串上的字符串比较吗?有人能给我提供一些文档吗?

这是对正则表达式
/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,第二个属性是iPhoneiPadiPod

因此,您可以期望
属性


编辑:如@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)
};