<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    無名的博客

    #

    常用正則表達(dá)式

    非負(fù)整數(shù)(正整數(shù) + 0)
    [^\\d+$] 

    正整數(shù)                 
    [^[0-9]*[1-9][0-9]*$]   

    非正整數(shù)(負(fù)整數(shù) + 0)
    [^((-\\d+)|(0+))$]        

    負(fù)整數(shù)
    [^-[0-9]*[1-9][0-9]*$]  

    整數(shù)
    [^-?\\d+$]       

    非負(fù)浮點(diǎn)數(shù)(正浮點(diǎn)數(shù) + 0)
    [^\\d+(
    \\.\\d+)?$]  

    正浮點(diǎn)數(shù)
    [^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$]  

    非正浮點(diǎn)數(shù)(負(fù)浮點(diǎn)數(shù) + 0)
    [^((-\\d+(
    \\.\\d+)?)|(0+(\\.0+)?))$]  

    負(fù)浮點(diǎn)數(shù)
    [^(-(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*)))$]  

    浮點(diǎn)數(shù)
    [^(-?\\d+)(
    \\.\\d+)?$]  

    由26個(gè)英文字母組成的字符串
    [^[A-Za-z]+$]  

    由26個(gè)英文字母的大寫組成的字符串
    [^[A-Z]+$]  

    由26個(gè)英文字母的小寫組成的字符串
    [^[a-z]+$]  

    由數(shù)字和26個(gè)英文字母組成的字符串
    [^[A-Za-z0-9]+$]  

    由數(shù)字、26個(gè)英文字母或者下劃線組成的字符串
    [^\\w+$]  

    email地址
    [^[\\w-]+(
    \\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$]    

    url
    [^[a-zA-z]+://(
    \\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$]  


    匹配中文字符的正則表達(dá)式: [\u4e00-\u9fa5]
    匹配雙字節(jié)字符(包括漢字在內(nèi)):[^\x00-\xff]


    中國(guó)電話號(hào)碼驗(yàn)證
    匹配形式如:0511-4405222 或者021-87888822 或者 021-44055520-555 或者 (0511)4405222
    正則表達(dá)式 "((d{3,4})|d{3,4}-)?d{7,8}(-d{3})*"

    中國(guó)郵政編碼驗(yàn)證
    匹配形式如:215421
    正則表達(dá)式 "d{6}"

    電子郵件驗(yàn)證
    匹配形式如:justali@justdn.com
    正則表達(dá)式 "w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*"

    身份證驗(yàn)證
    匹配形式如:15位或者18位身份證
    正則表達(dá)式 "d{18}|d{15}"

    常用數(shù)字驗(yàn)證
    正則表達(dá)式 
    "d{n}" n為規(guī)定長(zhǎng)度
    "d{n,m}" n到m的長(zhǎng)度范圍

    非法字符驗(yàn)證
    匹配非法字符如:< > & / ' | 
    正則表達(dá)式 [^<>&/|'\]+

    日期驗(yàn)證
    匹配形式如:20030718,030718
    范圍:1900--2099
    正則表達(dá)式((((19){1}|(20){1})d{2})|d{2})[01]{1}d{1}[0-3]{1}d{1}

    posted @ 2005-11-29 09:54 十三郎 閱讀(445) | 評(píng)論 (0)編輯 收藏

    Java中一些關(guān)于日期、日期格式、日期的解析和日期的計(jì)算

         Java 語言的Calendar(日歷),Date(日期), 和DateFormat(日期格式)組成了Java標(biāo)準(zhǔn)的一個(gè)基本但是非常重要的部分. 日期是商業(yè)邏輯計(jì)算一個(gè)關(guān)鍵的部分. 所有的開發(fā)者都應(yīng)該能夠計(jì)算未來的日期, 定制日期的顯示格式, 并將文本數(shù)據(jù)解析成日期對(duì)象.

        Date 類實(shí)際上只是一個(gè)包裹類, 它包含的是一個(gè)長(zhǎng)整型數(shù)據(jù), 表示的是從GMT(格林尼治標(biāo)準(zhǔn)時(shí)間)1970年, 1 月 1日00:00:00這一刻之前或者是之后經(jīng)歷的毫秒數(shù).

    一、創(chuàng)建一個(gè)日期對(duì)象
        使用系統(tǒng)的當(dāng)前日期和時(shí)間創(chuàng)建一個(gè)日期對(duì)象并返回一個(gè)長(zhǎng)整數(shù)的簡(jiǎn)單例子. 這個(gè)時(shí)間通常被稱為Java 虛擬機(jī)(JVM)主機(jī)環(huán)境的系統(tǒng)時(shí)間.

    Date date = new Date();
    System.out.println(date.getTime());

        上面的例子在系統(tǒng)輸出設(shè)備上顯示的結(jié)果是 1001803809710. 在這個(gè)例子中,值得注意的是我們使用了Date 構(gòu)造函數(shù)創(chuàng)建一個(gè)日期對(duì)象, 這個(gè)構(gòu)造函數(shù)沒有接受任何參數(shù). 而這個(gè)構(gòu)造函數(shù)在內(nèi)部使用了System.currentTimeMillis() 方法來從系統(tǒng)獲取日期.
    二、日期數(shù)據(jù)的定制格式
        定制日期數(shù)據(jù)的格式, 比方星期六-9月-29日-2001年. 下面的例子展示了如何完成這個(gè)工作:

    SimpleDateFormat bartDateFormat = new SimpleDateFormat("EEEE-MMMM-dd-yyyy");
    Date date = new Date();
    System.out.println(bartDateFormat.format(date));

        只要通過向SimpleDateFormat 的構(gòu)造函數(shù)傳遞格式字符串"EEE-MMMM-dd-yyyy", 我們就能夠指明自己想要的格式. 你應(yīng)該可以看見, 格式字符串中的ASCII 字符告訴格式化函數(shù)下面顯示日期數(shù)據(jù)的哪一個(gè)部分. EEEE是星期, MMMM是月, dd是日, yyyy是年. 字符的個(gè)數(shù)決定了日期是如何格式化的.傳遞"EE-MM-dd-yy"會(huì)顯示 Sat-09-29-01.
        下面是一些格式:
    Date and Time Pattern Result
    "yyyy.MM.dd G 'at' HH:mm:ss z" 2001.07.04 AD at 12:08:56 PDT
    "EEE, MMM d, ''yy" Wed, Jul 4, '01
    "h:mm a" 12:08 PM
    "hh 'o''clock' a, zzzz" 12 o'clock PM, Pacific Daylight Time
    "K:mm a, z" 0:08 PM, PDT
    "yyyyy.MMMMM.dd GGG hh:mm aaa" 02001.July.04 AD 12:08 PM
    "EEE, d MMM yyyy HH:mm:ss Z" Wed, 4 Jul 2001 12:08:56 -0700
    "yyMMddHHmmssZ" 010704120856-0700


    三、將文本數(shù)據(jù)解析成日期對(duì)象
        假設(shè)我們有一個(gè)文本字符串包含了一個(gè)格式化了的日期對(duì)象, 而我們希望解析這個(gè)字符串并從文本日期數(shù)據(jù)創(chuàng)建一個(gè)日期對(duì)象. 我們將再次以格式化字符串"MM-dd-yyyy" 調(diào)用SimpleDateFormat類, 但是這一次, 我們使用格式化解析而不是生成一個(gè)文本日期數(shù)據(jù). 我們的例子, 顯示在下面, 將解析文本字符串"9-29-2001"并創(chuàng)建一個(gè)值為001736000000 的日期對(duì)象.

    SimpleDateFormat bartDateFormat = new SimpleDateFormat("MM-dd-yyyy");
    String dateStringToParse = "9-29-2001";
    try {
    Date date = bartDateFormat.parse(dateStringToParse);
    System.out.println(date.getTime());
    } catch (Exception ex) {
    System.out.println(ex.getMessage());
    }

    四、使用標(biāo)準(zhǔn)的日期格式化過程

    既然我們已經(jīng)可以生成和解析定制的日期格式了, 讓我們來看一看如何使用內(nèi)建的格式化過程. 方法 DateFormat.getDateTimeInstance() 讓我們得以用幾種不同的方法獲得標(biāo)準(zhǔn)的日期格式化過程. 在下面的例子中, 我們獲取了四個(gè)內(nèi)建的日期格式化過程. 它們包括一個(gè)短的, 中等的, 長(zhǎng)的, 和完整的日期格式.

    Date date = new Date();

    DateFormat shortDateFormat = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT);
    DateFormat mediumDateFormat =DateFormat.getDateTimeInstance( DateFormat.MEDIUM, teFormat.MEDIUM);
    DateFormat longDateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG); DateFormat fullDateFormat = DateFormat.getDateTimeInstance( DateFormat.FULL, DateFormat.FULL);

    System.out.println(shortDateFormat.format(date));
    System.out.println(mediumDateFormat.format(date));
    System.out.println(longDateFormat.format(date));
    System.out.println(fullDateFormat.format(date));

    注意我們?cè)趯?duì) getDateTimeInstance的每次調(diào)用中都傳遞了兩個(gè)值. 第一個(gè)參數(shù)是日期風(fēng)格, 而第二個(gè)參數(shù)是時(shí)間風(fēng)格. 它們都是基本數(shù)據(jù)類型int(整型). 考慮到可讀性, 我們使用了DateFormat 類提供的常量: SHORT, MEDIUM, LONG, 和 FULL.
    運(yùn)行例子程序的時(shí)候, 它將向標(biāo)準(zhǔn)輸出設(shè)備輸出下面的內(nèi)容:
    9/29/01 8:44 PM
    Sep 29, 2001 8:44:45 PM
    September 29, 2001 8:44:45 PM EDT
    Saturday, September 29, 2001 8:44:45 PM EDT

    五、Calendar 類

    假設(shè)你想要設(shè)置, 獲取, 和操縱一個(gè)日期對(duì)象的各個(gè)部分, 比方一個(gè)月的一天或者是一個(gè)星期的一天. 為了演示這個(gè)過程, 我們將使用具體的子類 java.util.GregorianCalendar. 考慮下面的例子, 它計(jì)算得到下面的第十個(gè)星期五是13號(hào).


    DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.FULL);

    GregorianCalendar cal = new GregorianCalendar();

    cal.setTime(new Date());
    System.out.println("System Date: " + dateFormat.format(cal.getTime()));

    // Set the day of week to FRIDAY
    cal.set(GregorianCalendar.DAY_OF_WEEK, GregorianCalendar.FRIDAY);
    System.out.println("After Setting Day of Week to Friday: " +
    dateFormat.format(cal.getTime()));

    int friday13Counter = 0;

    while (friday13Counter <= 10)
    {

    // Go to the next Friday by adding 7 days.
    cal.add(GregorianCalendar.DAY_OF_MONTH, 7);

    // If the day of month is 13 we have
    // another Friday the 13th.
    if (cal.get(GregorianCalendar.DAY_OF_MONTH) == 13)
    {
    friday13Counter++;
    System.out.println(dateFormat.format(cal.getTime()));
    }
    }

    在這個(gè)例子中作了有趣的函數(shù)調(diào)用:
    cal.set(GregorianCalendar.DAY_OF_WEEK, GregorianCalendar.FRIDAY);

    cal.add(GregorianCalendar.DAY_OF_MONTH, 7);

    set 方法能夠讓我們通過簡(jiǎn)單的設(shè)置星期中的哪一天這個(gè)域來將我們的時(shí)間調(diào)整為星期五. 注意到這里我們使用了常量 DAY_OF_WEEK 和 FRIDAY來增強(qiáng)代碼的可讀性. add 方法讓我們能夠在日期上加上數(shù)值. 潤(rùn)年的所有復(fù)雜的計(jì)算都由這個(gè)方法自動(dòng)處理.

    我們這個(gè)例子的輸出結(jié)果是:
    System Date: Saturday, September 29, 2001
    當(dāng)我們將它設(shè)置成星期五以后就成了: Friday, September 28, 2001
    Friday, September 13, 2002
    Friday, December 13, 2002
    Friday, June 13, 2003
    Friday, February 13, 2004
    Friday, August 13, 2004
    Friday, May 13, 2005
    Friday, January 13, 2006
    Friday, October 13, 2006
    Friday, April 13, 2007
    Friday, July 13, 2007
    Friday, June 13, 2008

    GregorianCalendar類提供處理日期的方法。一個(gè)有用的方法是add().使用add()方法,你能夠增加象年,月數(shù),天數(shù)到日期對(duì)象中。要使用add()方法,你必須提供要增加的字段,要增加的數(shù)量。一些有用的字段是DATE, MONTH, YEAR, 和 WEEK_OF_YEAR。下面的程序使用add()方法計(jì)算未來80天的一個(gè)日期。在Jules的<環(huán)球80天>是一個(gè)重要的數(shù)字,使用這個(gè)程序可以計(jì)算Phileas Fogg從出發(fā)的那一天1872年10月2日后80天的日期:

    GregorianCalendar worldTour = new GregorianCalendar(1872, Calendar.OCTOBER, 2);
    worldTour.add(GregorianCalendar.DATE, 80);
    Date d = worldTour.getTime();
    DateFormat df = DateFormat.getDateInstance();
    String s = df.format(d);
    System.out.println("80 day trip will end " + s);

    五、實(shí)現(xiàn)日期以天數(shù)的加減:
    /* 將當(dāng)前日期加減n天數(shù)。
    * 如傳入字符型"-5" 意為將當(dāng)前日期減去5天的日期
    * 如傳入字符型"5" 意為將當(dāng)前日期加上5天后的日期
    * 返回字串 例(1999-02-03)
    */

    public String dateAdd(String to)
    {
    //日期處理模塊 (將日期加上某些天或減去天數(shù))返回字符串
    int strTo;
    try {
       strTo = Integer.parseInt(to);}
    catch (Exception e) {
       System.out.println("日期標(biāo)識(shí)轉(zhuǎn)換出錯(cuò)! : \n:::" + to + "不能轉(zhuǎn)為數(shù)字型");
       e.printStackTrace();
       strTo = 0;
    }
    Calendar strDate = Calendar.getInstance(); //java.util包,設(shè)置當(dāng)前時(shí)間
    strDate.add(strDate.DATE, strTo); //日期減 如果不夠減會(huì)將月變動(dòng) //生成 (年-月-日)
    String meStrDate = strDate.get(strDate.YEAR) + "-" +String.valueOf(strDate.get(strDate.MONTH)+1) + "-" + strDate.get(strDate.DATE);
    return meStrDate;
    }

    posted @ 2005-10-28 11:00 十三郎 閱讀(1062) | 評(píng)論 (0)編輯 收藏

    在HIBERNATE里投影查詢數(shù)據(jù)

        在數(shù)據(jù)庫中我們經(jīng)常會(huì)用到類似這樣的sql語句:SELECT A,B,C FROM TABLE_A,在HIBERNATE里實(shí)現(xiàn)起來相比較而然,稍微復(fù)雜了一點(diǎn)。
        在HIBERNATE里語句應(yīng)當(dāng)這么來寫:SELECT tableA.a,tableA.b,tableA.c FROM tableA

        tableA-----------表TABLE_A對(duì)應(yīng)的HIBERNATE的類名
        a,b,c-------------表TABLE_A里的三個(gè)列名對(duì)應(yīng)的HIBERNATE的類的幾個(gè)屬性

        最后便是取出查詢的數(shù)據(jù),整個(gè)返回值為Iterator,一行數(shù)據(jù)就是一個(gè)Object[]數(shù)組,數(shù)組里的每個(gè)變量對(duì)應(yīng)tableA.a,tableA.b,tableA.c 的順序取出此行該列的數(shù)據(jù)值,然后根據(jù)tableA.a,tableA.b,tableA.c 在類里的類型在對(duì)其進(jìn)行相應(yīng)的強(qiáng)制類型轉(zhuǎn)換。
        但是在我測(cè)試時(shí)如果在語句中FROM之前用到一些類似TO_CHAR,DECODE的函數(shù)則就會(huì)報(bào)錯(cuò),提示沒有該列,也不能像tableA.a AS TP這樣來寫。如果有解決這種情況出現(xiàn)的問題的,請(qǐng)告知。

    posted @ 2005-10-25 14:57 十三郎 閱讀(1566) | 評(píng)論 (1)編輯 收藏

    window.showModalDialog()、confirm()方法使用

    運(yùn)行描述:在A頁單擊按鈕彈出對(duì)話框B,選擇要選擇的欄目,彈出確認(rèn)信息。確定后對(duì)話框B自動(dòng)關(guān)閉,其所選擇的欄目值傳到A頁相應(yīng)的文本框內(nèi)。代碼如下

    A.htm
    <script>
    function openwin(){
    var value = window.showModalDialog("b.htm",window,"dialogWidth:370px;help:no;resizable:no;status:no;scroll:no");
    document.form1.a.value = value;
    }
    </script>
    選擇欄目:<a href="#" onClick="javascript:openwin();">click</a>
    <form name="form1">
    <input name="a" type="txt">
    </form>

    B.htm
    <script>
    function returnAll(str){
       if(confirm("是否選擇'"+str+"'")){
          window.returnValue=""+str+"";
          window.close();
       }
    }
    </script>
    <form name="form1">
    <a href="#" onClick="javascript:returnAll(this.innerText);" id="a">a</a>
    <a href="#" onClick="javascript:returnAll(this.innerText);" id="b">b</a>
    <a href="#" onClick="javascript:returnAll(this.innerText);" id="c">c</a>
    </form>

    posted @ 2005-10-18 10:49 十三郎 閱讀(1752) | 評(píng)論 (2)編輯 收藏

    任意增加或刪除一行html元素

    代碼如下:

    <script language="javascript">
    var curRow=null;
    function selectRow(tr1){
    if(curRow)
    curRow.bgColor="#FFFFFF";
    tr1.bgColor="e7e7e7";
    curRow=tr1;
    }
    function addRow(src){
    var newrow = src.insertRow(src.rows.length-1);
    newrow.attachEvent("onclick",function(){selectRow(newrow);});
    newrow.height=20;
    var i=4;
    while(i--){
    var newcell = newrow.insertCell();
    switch(i){
    case 0: newcell.innerHTML= '<input type="button" onClick="javascript:delRow(this.parentElement.parentElement)" value="刪除此行">';break;
    default: newcell.innerHTML=div1.innerHTML;break;
    }
    }
    }
    function delRow(src){
    src.parentElement.deleteRow(src.rowIndex);
    }
    </script>

    <table id="tb" width="100%"  border="1" >
      <tr>
        <th scope="col" width="25%">一</th>
        <th scope="col" width="25%">二</th>
        <th scope="col" width="25%">三</th>
        <th scope="col" width="25%">四</th>
      </tr>
      <tr id="blankRow" onClick="addRow(this.parentElement)">
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
      </tr>
    </table>
    <div id="div1" style="display:none "><inpute type="text"></div>

    posted @ 2005-10-18 10:47 十三郎 閱讀(752) | 評(píng)論 (1)編輯 收藏

    僅列出標(biāo)題
    共4頁: 上一頁 1 2 3 4 下一頁 
    主站蜘蛛池模板: 成人午夜免费视频| 亚洲日韩av无码| a级毛片无码免费真人| 一个人免费观看在线视频www| 精品免费国产一区二区三区 | 久久亚洲国产精品五月天婷| 国产亚洲成AV人片在线观黄桃| 亚洲熟妇无码爱v在线观看| 亚洲人成7777| 九九综合VA免费看| 日韩精品无码一区二区三区免费| 国内精品免费麻豆网站91麻豆| 精品剧情v国产在免费线观看| 国产亚洲精品成人AA片| 两个人的视频www免费| 四虎免费影院ww4164h| 亚洲一区精品伊人久久伊人| 亚洲精品在线免费观看视频| 最近中文字幕电影大全免费版| 亚洲国产精品丝袜在线观看| 亚洲国产精品美女| 99精品免费视品| 日本不卡在线观看免费v| 亚洲国产精品久久久久久| 特级毛片A级毛片100免费播放| 最近2019免费中文字幕6| 亚洲国产综合人成综合网站00| 卡一卡二卡三在线入口免费| 亚洲精品在线播放| 天天拍拍天天爽免费视频 | 国产精品亚洲综合网站| 久久精品免费观看国产| 免费不卡中文字幕在线| 国产成人精品亚洲2020| 四虎1515hm免费国产| 亚洲人成色4444在线观看| 91香焦国产线观看看免费| 日韩亚洲不卡在线视频中文字幕在线观看| 爽爽日本在线视频免费| 你是我的城池营垒免费观看完整版| 亚洲精品在线不卡|