首页 > 网站 > WEB开发 > 正文

正则表达式之JSP、Android

2024-04-27 14:09:18
字体:
来源:转载
供稿:网友

正则表达式之jsp、Android

  对于正则表达式,很多朋友一定不陌生,因为在我们做网站或apk时,当需要用户提交表单时,很多时间需要判断用户的输入是否合法,这个时间正则表达式就可以发挥它的作用了,我们知道正则表达式在这个方面是很强大的,本篇我将为大家介绍一下,正则表达式在Android和JSP中的使用方法。

  对于正则表达式的基础介绍请参考:http://www.cnblogs.com/AndroidJotting/p/RegExp.html

  首先为大家介绍一下正则表达式在JSP中的使用规范(JSP代码):

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>    <base href="<%=basePath%>">        <title>正则表达式</title>    <meta http-equiv="PRagma" content="no-cache">    <meta http-equiv="cache-control" content="no-cache">    <meta http-equiv="expires" content="0">        <meta http-equiv="keyWords" content="keyword1,keyword2,keyword3">    <meta http-equiv="description" content="This is my page">    <!--    <link rel="stylesheet" type="text/CSS" href="styles.css">    -->    <script type="text/Javascript" language="javascript">        function judge(form){            var cn = form.cn;            var cn_text = /^[/u0391-/uFFE5]+$/;//中文匹配            //var cn_text = /^/w*$/;//中文匹配            var en = form.en;            var en_text = /^[A-Za-z]+$/;//字母匹配            var num = form.num;            var num_text = /^[0-9]+$/;//数字匹配            var emal = form.emal;            var emal_text = /^/w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*$/;//emal匹配            var phone = form.phone;            var phone_text = /^((/(/d{2,3}/))|(/d{3}/-))?(/(0/d{2,3}/)|0/d{2,3}-)?[1-9]/d{6,7}(/-/d{1,4})?$/;//7位电话号码            var url = form.url;            var url_text = /^http:////w{3}/.[A-Za-z0-9]+/.[A-Za-z0-9]+[//=/?%/-&_~`@[/]/':+!]*([^<>/"/"])*$/;//网址匹配            var QQ = form.qq;            var qq_text = /^[1-9]/d{4,11}$/;//匹配QQ号            var fuhao = form.fuhao;            var fuhao_text = /^[^%&’,;=?$x22]+$/;//匹配特殊符号            if(!cn_text.test(cn.value)){                alert("请输入中文。");                cn.select();                cn.focus();                return false;            }else{                if(!en_text.test(en.value)){                    alert("请输入英文字符。");                    en.select();                    en.focus();                    return false;                }else{                    if(!num_text.test(num.value)){                        alert("请输入数字。");                        num.select();                        num.focus();                        return false;                    }else{                        if(!emal_text.test(emal.value)){                            alert("邮箱格式不对。");                            emal.select();                            emal.focus();                            return false;                        }else{                            if(!phone_text.test(phone.value)){                                alert("电话格式不对.");                                phone.select();                                phone.focus();                                return false;                            }else{                                if(!url_text.test(url.value)){                                    alert("网址输入的格式不正确。");                                    url.value="http://www.";                                    url.focus();                                    return false;                                }else{                                    if(!qq_text.test(qq.value)){                                        alert("QQ输入的格式不正确。");                                        qq.select();                                        qq.focus();                                        return false;                                    }else{                                        if(!fuhao_text.test(fuhao.value)){                                            alert("请输入特殊符号。");                                            fuhao.select();                                            fuhao.focus();                                            return false;                                        }                                    }                                }                            }                        }                    }                }            }        }    </script>  </head>    <body><center>    <form action="#" method="post" id="form" name="form" onsubmit="return judge(this)">        中文:<input type="text" name="cn"><br/>        英文:<input type="text" name="en"><br/>        数字:<input type="text" name="num"><br/>        邮箱:<input type="text" name="emal"><br/>        电话:<input type="text" name="phone"><br/>        网址:<input type="text" name="url"><br/>        QQ: &nbsp;<input type="text" name="qq"><br/>        符号:<input type="text" name="fuhao"><br/>         <input type="submit" value="提交">    </form>  </center></body></html>

  代码没有什么难点,就不再赘述了,大家可以可以复制、粘贴测试一下,这样可以更好的理解。

  下面我们来一起探讨一下正则表达式在Android中的使用:

  1、验证用户名为例,用户名一般字母开头,允许字母数字下划线,5-16个字节:

String regEx = "^[a-zA-Z][a-zA-Z0-9_]{4,15}$";Pattern pattern = Pattern.compile(regEx);Matcher matcher = pattern.matcher(userName);boolean b = matcher.matches();

  匹配的话b为true,否则为false

  2、电话、邮箱、数字判断:

 //判断手机格式是否正确public boolean isMobileNO(String mobiles) {Pattern p = Pattern.compile("^((13[0-9])|(15[^4,//D])|(18[0,5-9]))//d{8}$");Matcher m = p.matcher(mobiles);return m.matches();}//判断email格式是否正确public boolean isEmail(String email) {String str = "^([a-zA-Z0-9_//-//.]+)@((//[[0-9]{1,3}//.[0-9]{1,3}//.[0-9]{1,3}//.)|(([a-zA-Z0-9//-]+//.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(//]?)$";Pattern p = Pattern.compile(str);Matcher m = p.matcher(email);return m.matches();}//判断是否全是数字public boolean isNumeric(String str) {Pattern pattern = Pattern.compile("[0-9]*");Matcher isNum = pattern.matcher(str);if (!isNum.matches()) {return false;}return true;}}

  最后在为大家简单介绍一些有关JAVA的正则表达式:

  a.java验证IP地址:

Pattern pattern = Pattern.compile("//b((?!//d//d//d)//d+|1//d//d|2[0-4]//d|25[0-5])//.((?!//d//d//d)//d+|1//d//d|2[0-4]//d|25[0-5])//.((?!//d//d//d)//d+|1//d//d|2[0-4]//d|25[0-5])//.((?!//d//d//d)//d+|1//d//d|2[0-4]//d|25[0-5])//b");Matcher matcher = pattern.matcher("127.400.600.2"); //以验证127.400.600.2为例System.out.println(matcher.matches());

  b.java验证日期时间,解决润月:

Pattern pattern = Pattern.compile("^((//d{2}(([02468][048])|([13579][26]))[//-/////s]?((((0?[13578])|(1[02]))[//-/////s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[//-/////s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[//-/////s]?((0?[1-9])|([1-2][0-9])))))|(//d{2}(([02468][1235679])|([13579][01345789]))[//-/////s]?((((0?[13578])|(1[02]))[//-/////s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[//-/////s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[//-/////s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))(//s(((0?[0-9])|([1-2][0-3]))//:([0-5]?[0-9])((//s)|(//:([0-5]?[0-9])))))?$");Matcher matcher = pattern.matcher("2000-02-29 23:59:59");System.out.println(matcher.matches());

  c.java验证邮箱格式:

Pattern pattern = Pattern.compile("^([a-zA-Z0-9_//-//.]+)@((//[[0-9]{1,3}//.[0-9]{1,3}//.[0-9]{1,3}//.)|(([a-zA-Z0-9//-]+//.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(//]?)$");Matcher matcher = pattern.matcher("a@aa.com");System.out.println(matcher.matches());

  附带为大家介绍一下我国电话号码段的知识:

  根据实际开发于2009年9月7日最新统计:  中国电信发布中国3G号码段:中国联通185,186;中国移动188,187;中国电信189,180共6个号段。  3G业务专属的180-189号段已基本分配给各运营商使用, 其中180、189分配给中国电信,187、188归中国移动使用,185、186属于新联通。  中国移动拥有号码段:139、138、137、136、135、134、159、158、157(3G)、152、151、150、188(3G)、187(3G);14个号段  中国联通拥有号码段:130、131、132、155、156(3G)、186(3G)、185(3G);6个号段  中国电信拥有号码段:133、153、189(3G)、180(3G);4个号码段  移动:  2G号段(GSM网络)有139,138,137,136,135,134(0-8),159,158,152,151,150  3G号段(TD-SCDMA网络)有157,188,187  147是移动TD上网卡专用号段.  联通:  2G号段(GSM网络)有130,131,132,155,156  3G号段(WCDMA网络)有186,185  电信:  2G号段(CDMA网络)有133,153  3G号段(CDMA网络)有189,180


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表