[Вот еще один вариант или ассимиляция для вашего рассмотрения.]
Более универсален и упрощен.
Вы можете передать запрос или любой объект со свойством 'headers', или это может быть свойство headers, и вы можете выбрать любую метку для поиска параметра объекта или заголовков или самой строки агента пользователя.
Он использовал ранее опубликованное регулярное выражение для проверки мобильных и таблиц и просто возвращает этот результат, но сначала освящая ввод, можно подключать различные вещи.
Вы даже можете переопределить регулярное выражение по умолчанию, необязательно передаваемое в качестве аргумента. {Я оставлю это дальнейшее продолжение вдохновленным.}
Также можно использовать другой способ по умолчанию использовать глобально хранимый пользовательский агент из запроса, если он находится в области действия и т. Д.
mobTabCheck: function( ua, lbl, rgx ) { /* mobile tablet check; UserAgent or request, or any object with optional search label */
if( ua === und ) return false;
if( ua !== und && ua.constructor !== String ) {
if( lbl === und ) lbl = 'user-agent';
if( ua.headers !== und ) ua = ua.headers[ lbl ];
else ua = ua[ lbl ];
}
if( rgx === und ) rgx = /Mobile|iP(hone|od|ad)|Android|BlackBerry|IEMobile|Kindle|NetFront|Silk-Accelerated|(hpw|web)OS|Fennec|Minimo|Opera M(obi|ini)|Blazer|Dolfin|Dolphin|Skyfire|Zune/;
if( rgx.constructor === String ) rgx = new RegExp( rgx );
return rgx.test( ua );
}
Это регулярное выражение пришло отсюда ...
https://gist.github.com/dalethedeveloper/1503252/931cc8b613aaa930ef92a4027916e6687d07feac
Раствор 98%. Я не знаю, проверяет ли он планшеты, как следует из названия моей функции.
Неужели название этой функции (и некоторые аргументы) следует переименовать, может быть? ... serachObjectForLabelThatMatchesThisRegex
за исключением того, что все значения по умолчанию делают его предметом с одним аргументом.
Кроме того, я оставляю функцию установленной в качестве значения ключа, которое вы можете сохранить так, как предпочитаете ... просто пообещайте мне не использовать var или const, если вы его используете.
let mobTabCheck = function() {};