java 从零开始,学习笔记之基础入门<正则表达式>(三十一)

来源:互联网 发布:算法心得 pdf 编辑:程序博客网 时间:2024/05/29 21:31

正则表达式

JAVA中正则表达式:

² [a-z]表示字母a到z任意一个字符

² [A-Z]表示A到Z任意一个字符

² [0-9]表示数字0到9中任意一个数字

² //"^"表示以某个字符开头

² //"*"表示前面的字符至少出现0次,一次或者多次

² //"."表示一个元数据

² //"$"表示以什么结尾

² //"+"表示前面字符至少出现一次

² //"|"表示或者,只能选择其中一个

² //"[]"里面放入字符,我们默认只能选择其中一个

 

import java.util.regex.Matcher;

import java.util.regex.Pattern;

 

 

public class PatternExample {

    public static void main(String[] args) {

       Pattern p = Pattern.compile("^t.*java");

       Matcher m = p.matcher("think in java");

       boolean f=m.matches();

       System.out.println(f);

      

       //"^"表示以某个字符开头

       //"*"表示前面的字符至少出现0次,一次或者多次

       //"."表示一个元数据

       //"$"表示以什么结尾

       //"+"表示前面字符至少出现一次

       //"|"表示或者,只能选择其中一个

       //"[]"里面放入字符,我们默认只能选择其中一个

       boolean b=Pattern.matches("1[358][0-9]{9}","13554277754");

       boolean b1=Pattern.matches("027-[1-9]{1}[0-9]{7}","027-88888888");

       //"?"表示前面的字符出现0次,或者1

       boolean b2=Pattern.matches("a.*b:?0$","asafafdb:0");

       boolean b3=Pattern.matches("^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$","lu@163.com");

 

       //出生年月2008-05-02

       boolean b4=Pattern.matches("[1-2][0-9]{3}-[0-1][0-9]-[0-3][0-9]","2001-02-29");

       //身份证号的正则表达式

       boolean b5=Pattern.matches("[1-9]{1}+\\d{16}+([0-9]|x)","20002522222222222x");

       //IP地址的正则表达式

       boolean b6 = Pattern.matches("((1\\d?\\d)|(2[0-2][0-3])|(0?[1-9]? [1-9])).(([0-1]?\\d?\\d)|(2[0-5][0-5])).(([0-1]?\\d?\\d)|(2[0-5][0-5])).(([0-1]?\\d?\\d)|(2[0-5][0-5]))","0.245.132.222");

       System.out.println(b);

       System.out.println(b1);

       System.out.println(b2);

       System.out.println(b3);

       System.out.println(b4);

       System.out.println(b5);

       System.out.println(b6);

    }

 

}

 

 

JS中正则表达式:

<%@ page language="java"import="java.util.*"pageEncoding="UTF-8"%>

<%

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

 

<!DOCTYPEHTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

    <basehref="<%=basePath%>">

   

    <title>My JSP 'index.jsp' starting page</title>

    <metahttp-equiv="pragma"content="no-cache">

    <metahttp-equiv="cache-control"content="no-cache">

    <metahttp-equiv="expires"content="0">   

    <metahttp-equiv="keywords"content="keyword1,keyword2,keyword3">

    <metahttp-equiv="description"content="This is my page">

    <!--

    <link rel="stylesheet" type="text/css"href="styles.css">

    -->

    <scripttype="text/javascript"language="javascript">

    //简单的写一个正则表达式测试QQ号是否匹配

    /*

    //简单的写一个正则表达式 测试QQ号是否匹配

    function test01(){

     //创建表达式

     var regex=/^[1-9][0-9]{4,9}$/;

     //指定一个模拟的QQ

     var qq="617220111";

    //匹配的结果未boolean如果匹配成功返回true否则返回false

     var bol=regex.test(qq);

     alert("结果是:"+bol);

    }

   

    function test02(){

    var regex=/.+/;

    var mm="";

    var bool=regex.test(mm);

    alert("判断结果:"+bool);

    }

   

    //账号不能为空,并且第一位要用字母开头,可以有下划线,数字,长度在1-10之间

   

    function test03(){

    var regex=/(^[a-zA-Z]\w){2,10}/;

    var kk="S2_Fsd5adaaa666asd2";

    var boool=regex.test(kk);

    alert("判断结果是:"+boool);

    }

   

    function test04(){

    var regex=/^[1-9a-zA-Z]\w+@(163|qq|sina|sohu|yahoo|google){1}[.](com|cn|com[.]cn|org|edu)$/;

    var qq="my@163.com.cn";

    var booool=regex.test(qq);

    alert("判断结果是:"+booool);

    }

   

    function test05(){

    var regex=/^[1-9]\d{16}(xX|[0-9])$/;

    var sfz="42222222133213221x";

     var boooool=regex.test(sfz);

     alert("结果"+boooool);

    }

   

   

            // ^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$

            //判断输入的日期不能超过今年的

                function test06(){

                 var yy=document.getElementById("year").value;

                 var mm=document.getElementById("month").value;

                 var dd=document.getElementById("date").value;

                

                 var date=new Date();

                 var y=date.getFullYear();

                 var m=date.getMonth();

                 var d=date.getDate();

 

                 switch(mm){

                 case"2":

                 if((yy%4==0&&yy%100!=0)||yy%400==0){

                      if(dd>29){

                        alert("天数不能大于29");

                          }

                     }else{

                         if(dd>28){

                        alert("天数不能大于28");

                             }

                         }

                 break;

                 case"4":

                 case"6":

                 case"9":

                 case"11":

                     if(dd>30){

                        alert("天数不能大于30");

                         }

                 }

 

                 //年的正则

                var regex=/^[1-2][0-9]{3}$/;

                if(!regex.test(yy)){

                    alert("输入年的格式不正确!");

                    }

                //月的正则

                 var regex1=/^([1-9]|1[0-2])$/;

                if(!regex1.test(mm)){

                      alert("输入月的格式不正确!");

                    }

                  //日的正则

                  var regex2=/^([1-9]|[1-2][0-9]|3[0-1])$/

                      if(!regex2.test(dd)){

                          alert("输入天的格式不正确!");

                          }

                 }

           

 

    </script>

  </head>

 

  <body>

    <formaction=""method="post">

      年:<inputtype="text"id="year">

   月:<inputtype="text"id="month">

   日:<inputtype="text"id="date">

   <inputtype="button"value="显示"onclick="test06()">

</form>

  </body>

</html>

 

 

选择了一个省 然后市的下拉框可以出现对应的省的市

<%@ page language="java"import="java.util.*"pageEncoding="UTF-8"%>

 

<!DOCTYPEHTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

   

    <title>My JSP 'ShengSelect.jsp' starting page</title>

   

    <metahttp-equiv="pragma"content="no-cache">

    <metahttp-equiv="cache-control"content="no-cache">

    <metahttp-equiv="expires"content="0">   

    <metahttp-equiv="keywords"content="keyword1,keyword2,keyword3">

    <metahttp-equiv="description"content="This is my page">

 

   <scripttype="text/javascript">

       function scc(){

       var c=document.getElementById("city");

                c.add(new Option("海淀","海淀"));

              c.add(new Option("朝阳","朝阳"));

              c.add(new Option("丰台"));

              c.add(new Option("海淀"));

       }

  

        function sc(){

        //省市级联效果

        //获取省的值

            var sheng=document.getElementById("province").value;

            alert(sheng);

            

        //针对选中的省  进行判断如果有匹配的则在 市级中添加对应的市

       

               //获得市的对象信息

               var c=document.getElementById("city");

               //清空列表

               c.length=0;

        switch(sheng){

           case"北京":

              c.add(new Option("海淀","海淀"));

              alert("海淀");

              c.add(new Option("朝阳","朝阳"));

              c.add(new Option("丰台","丰台"));

              c.add(new Option("海淀","海淀"));

           break;

           case"上海":

               c.add(new Option("闸北","闸北"));

              c.add(new Option("青浦","青浦"));

              c.add(new Option("静安","静安"));

              c.add(new Option("长宁","长宁"));

           break;

           case"湖北":

               c.add(new Option("武汉","武汉"));

               c.add(new Option("黄石","黄石"));

              c.add(new Option("荆州","荆州"));

              c.add(new Option("咸宁","咸宁"));

           break;

           case"湖南":

               c.add(new Option("长沙"));

              c.add(new Option("湘潭"));

              c.add(new Option("衡阳"));

              c.add(new Option("岳阳"));

           break;

           case"江西":

               c.add(new Option("九江"));

              c.add(new Option("南昌"));

              c.add(new Option("赣州"));

              c.add(new Option("上饶"));

           break;

           case"陕西":

               c.add(new Option("西山"));

              c.add(new Option("宝鸡"));

              c.add(new Option("东城"));

              c.add(new Option("延安"));

           break;

        }

        }

       

        //市到市

        function cd(){

        //获取市对象

        var cc= document.getElementById("city").value;

//         cc="海淀";

        alert(cc);

        var dd=document.getElementById("district");

               //清空列表

               dd.length=0;

        switch(cc){

           case"海淀":

               for(j=0;j<10;j++){

                   dd.add(new Option("海淀区"+j+"","海淀区"+j+""));

               }

           break;

          

           case"朝阳":

               for(i=0;i<10;i++){

                  dd.add(new Option("朝阳区"+i+"","朝阳区"+i+""));                   

               }

           break;  

          

           case"荆州":

               for(i=0;i<10;i++){

                  dd.add(new Option("沙市"+i+"","沙市"+i+""));               

               }

           break;

          

           case"咸宁":

               for(i=0;i<10;i++){

                  dd.add(new Option("赤壁"+i+"","赤壁"+i+""));               

               }

           break;       

        }

        }

  

   </script>

 

  </head>

 

  <%--设置初始值预先加载 --%>

  <bodyonload="sc();cd();">

  <%--你选择了一个省然后市的下拉框可以出现对应的省的市 --%>

    <formaction="">

    省份:<selectid="province"name="province"onchange="sc();">

            <option value="北京"selected="selected">北京</option>

            <option value="上海">上海</option>

            <option value="湖北">湖北</option>

            <option value="湖南">湖南</option>

            <option value="江西">江西</option>

            <option value="陕西">陕西</option>

        </select>

        &nbsp;&nbsp;&nbsp;&nbsp;

    市:<selectid="city"name="city"onchange="cd();"></select>

    区:<selectid="district"name="district"></select>

   

    </form>

  </body>

</html>

 

 

原创粉丝点击