随着移动互联网的迅猛发展,越来越多的用户选择使用移动端浏览器访问网页。当用户访问一个网站的pc端页面的时候,往往是非常影响用户体验的。我们希望当用户使用移动端浏览器访问我们的pc端网站的时候,自动跳转到对应的wap页面。本文主要介绍两种方法,分别在服务端和客户端判断是否为移动端访问并跳转。废话少说,上代码!

一、服务端判断 Java代码如下:

package com.ky620.util;  import java.util.regex.Matcher;
import java.util.regex.Pattern;  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);    /** * 检测是否是移动设备访问 *  * @Title: check * @Date : 2014-7-7 下午01:29:07 * @param userAgent 浏览器标识 * @return true:移动设备接入,false:pc端接入 */  public static boolean check(String userAgent){    if(null == userAgent){    userAgent = "";    }    // 匹配    Matcher matcherPhone = phonePat.matcher(userAgent);    Matcher matcherTable = tablePat.matcher(userAgent);    if(matcherPhone.find() || matcherTable.find()){    return true;    } else {    return false;    }    }
}  

二、移动端判断 JavaScript代码如下:

function checkMobile(){  var isiPad = navigator.userAgent.match(/iPad/i) != null;  if(isiPad){  return false;  }  var isMobile=navigator.userAgent.match(/iphone|android|phone|mobile|wap|netfront|x11|java|opera mobi|opera mini|ucweb|windows ce|symbian|symbianos|series|webos|sony|blackberry|dopod|nokia|samsung|palmsource|xda|pieplus|meizu|midp|cldc|motorola|foma|docomo|up.browser|up.link|blazer|helio|hosin|huawei|novarra|coolpad|webos|techfaith|palmsource|alcatel|amoi|ktouch|nexian|ericsson|philips|sagem|wellcom|bunjalloo|maui|smartphone|iemobile|spice|bird|zte-|longcos|pantech|gionee|portalmmm|jig browser|hiptop|benq|haier|^lct|320x320|240x320|176x220/i)!= null;  if(isMobile){  return true;  }  return false;
} 

举个栗子:当用户使用移动端访问这个页面 http://www.ky620.com/info/253556 时,将会自动跳转到 http://wap.ky620.com/info/253556 。

两种方法判断是否为移动端访问,跳转到对应wap页面相关推荐

  1. 用两种方法判断男性女性的存储过程

    昨天有一朋友问我了这个问题,题目如下:创建一个名为CheckGender的存储过程,该过程接受一个名称作为其参数并检查名称的前缀为Ms. 还是Mr.如果前缀为Ms.则显示"你输入的是女性的名 ...

  2. 【一雪前耻!】两种方法判断大小端模式

    废话不多说,直接上代码. 法一:指针法 #include <stdio.h>int main(){int a = 1;char p = *((char *) &a); ///< ...

  3. 两种方法判断一个字符串是否为另外一个字符串旋转之后的字符串。(C语言)...

    例如:给定s1 = AABCD和s2 = BCDAA,返回1 给定s1 = abcd和s2 = ACBD,返回0. AABCD左旋一个字符得到ABCDA AABCD左旋两个字符得到BCDAA 第一种: ...

  4. 两种方法判断有向图是否有环【DFS】【拓扑排序】

    方法1:DFS判断有向图是否有环 对一个节点u进行DFS,判断是否能从u回到自己这个节点,即是否存在u到u的回路. color数组代表每个节点的状态 -1代表还没访问,0代表正在被访问,1代表访问结束 ...

  5. python比较两个二进制文件_python三种方法判断文件是否为二进制文件

    两种方法判断文件是否为二进制文件,最准确的就是把这两种方法结合起来. (1)方法一: 它首先检查文件是否以BOM开始,如果不在初始8192字节内查找零字节: import codecs file_pa ...

  6. 进Linux系统单用户模式,Linux进入单用户模式的两种方法

    单用户模式的作用 在使用Linux系统中,维护人员经常会碰到一个问题,就是在拥有root账号权限和密码的用户中,总是会出现忘记root密码的情况. 遇到这种情况,一般情况下,维护人员就会通过最常用的方 ...

  7. MSSQL 判断表是否存在的两种方法

    SQL学习之查询技巧 查询表是否存在的两种方法 方法一 判断系统对象是否存在DECLARE@DbTableFileName VARCHAR(100)SET @DbTableFileName = 'tx ...

  8. oracle 判断是否位汉字,js判断字符是否是汉字的两种方法小结

    有时需要判断一个字符是不是汉字,比如在用户输入含有中英文的内容时,需要判断是否超过规定长度就要用到.用 Javascript 判断通常有两种方法. 1.用正则表达式判断 js判断字符是否是汉字 .co ...

  9. android判断应用是否回到桌面的两种方法

    有时候需要判断APP是否被切换到后台,然后做相应处理,如显示悬浮窗等.怎么判断呢,有两种方法: 第一种: /*** 判断当前界面是否是桌面*/private boolean isHome() {Str ...

最新文章

  1. SAP RETAIL 为物料组指派Merchandise Hierarchy Level Code
  2. Kafka controller重设计
  3. java获取mysql执行计划_好程序员Java学习路线之MySQL的执行计划
  4. S5PV210裸机之GPIO
  5. 别急,MIUI 11还有惊喜!下一代MIUI项目已开拔
  6. python爬虫遇到js加密_当爬虫遇到js加密
  7. 30岁的职场危机,人生下半场的困局
  8. Three.js贴图效果一览
  9. 17.CRT的绿色版安装和使用。
  10. 在2020年使用黑莓9720+BBOS7三个月的感受
  11. 字体/字库: [ 下载 ] > freetype sdl sdl_ttf
  12. pytorch深度学习_用于数据科学家的深度学习的最小pytorch子集
  13. WebSocket 简述
  14. 国科大《模式识别》课程总结
  15. c语言检测邮箱地址,c语言实现邮箱地址验证
  16. 培训机构要不要去 适合谁去
  17. 7天吸粉111万,条条视频都爆款,无穷小亮的科普日常是如何做到的?!
  18. Chapter 20 Treatment-Confounder Feedback
  19. 单链DNA核酸适配体修饰二氧化硅微球/SiO2/Fe3O4磁性微球的制备与研究
  20. USERKEY_PLAT_NOMATCH——高德地图经纬度转换API使用报错

热门文章

  1. Hbase预分区与优化
  2. 牛奶可乐经济学之Q6:为什么有不少学校要求学生穿校服?
  3. 为什么现在JAVA初级程序员要求这么高?
  4. sklearn实战之随机森林
  5. 互联网冲击能源业 光伏或迎新融资模式
  6. 医院CRM是什么?医院CRM能做什么?
  7. 小科普 | 什么是MTBF?那MTTF、MTTD、MTTR又是啥?
  8. 永恒之蓝黑脏牛提权范围
  9. 【Unity3D实现自定义调色板】
  10. 黑科技揭秘:面对海量的文本翻译任务,阿里翻译团队是如何解决的 1