2019独角兽企业重金招聘Python工程师标准>>>
user-agent 验证移动端请求
import org.apache.commons.lang.StringUtils;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* 检测终端请求是否来源于移动端
* @author FanWeiJie
* @date 2017-02-23 16:44:52
**/
public class CheckMobile {
/***
* \b 是单词边界(连着的两个(字母字符 与 非字母字符) 之间的逻辑上的间隔), 字符串在编译时会被转码一次,所以是 "\\b"
*
* \B 是单词内部逻辑间隔(连着的两个字母字符之间的逻辑上的间隔)
**/
static String phoneReg = "\\b(ip(hone|od)|android|opera m(ob|in)i"
//
+ "|windows (phone|ce)|blackberry"
//
+ "|s(ymbian|eries60|amsung)|p(laybook|alm|rofile/midp"
//
+ "|laystation portable)|nokia|fennec|htc[-_]"
//
+ "|mobile|up.browser|[1-4][0-9]{2}x[1-4][0-9]{2})\\b";
static String tableReg = "\\b(ipad|tablet|(Nexus 7)|up.browser" + "|[1-4 [0-9]{2}x[1-4][0-9]{2})\\b";
static Pattern phonePat = Pattern.compile(phoneReg, Pattern.CASE_INSENSITIVE);
static Pattern tablePat = Pattern.compile(tableReg, Pattern.CASE_INSENSITIVE);
/**
* 检测是否是移动设备访问
* @param userAgent 访问浏览器
* @return 是否移动设备访问,true:是,false:否
*/
public static boolean check(String userAgent) {
if (StringUtils.isBlank(userAgent)) {
return false;
}
Matcher matcherPhone = phonePat.matcher(userAgent);
Matcher matcherTable = tablePat.matcher(userAgent);
if (matcherPhone.find() || matcherTable.find()) {
return true;
} else {
return false;
}
}
}
https://www.fank243.com/posts/dd36f32d.html