posts - 15, comments - 6, trackbacks - 0, articles - 0
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          JavaScript Regular Expression

          Posted on 2008-01-23 23:32 thomas.chen 閱讀(416) 評論(0)  編輯  收藏 所屬分類: JavaScript
           

          1.        基礎(chǔ)

          1.1.      簡介

          正則表達(dá)式就是由普通字符(例如字符 a z)以及元字符組成的文字模式。該模式描述在查找文字主體時(shí)待匹配的一個(gè)或多個(gè)字符串。正則表達(dá)式作為一個(gè)模板,將某個(gè)字符模式與所搜索的字符串進(jìn)行匹配。所以她是一種可以用于模式匹配替換的強(qiáng)有力的工具。

          其作用如下:

          u       測試字符串的是否符合某個(gè)模式。例如,可以對一個(gè)輸入字符串進(jìn)行測試,看在該字符串是否存在一個(gè)電話號碼模式或一個(gè)信用卡號碼模式。這稱為數(shù)據(jù)有效性驗(yàn)證。

          u       替換文本??梢栽谖臋n中使用一個(gè)正則表達(dá)式來標(biāo)識特定文字,然后可以全部將其刪除,或者替換為別的文字。

          1.2.      基本語法

          正則表達(dá)式由兩類字符組成:元字符 metacharacter)和字符。所謂元字符是指那些在正則表達(dá)式中具有特殊意義的專用字符,可以用來規(guī)定其前導(dǎo)字符(即位于元字符前面的字符)在目標(biāo)對象中的出現(xiàn)模式。請看一個(gè)簡單的JavaScript正則表達(dá)式的例子:

          /^jim{2,6}/

          該表達(dá)式應(yīng)該念成:匹配某字符串,該字符串由j開始,后面緊跟i,接著跟著m,其中m必須出現(xiàn)最少2次,最多6次。所以該表達(dá)式可以匹配:jimmm , jimmmmmm,但是不可以匹配jim。這里:

          “/” …”/” :表示JavaScript正則表達(dá)定義的開始和結(jié)束。

          ^        :匹配輸入字符串的開始位置

          {2,6}     :最少匹配 n 次且最多匹配 m

          這里^,{2,6}就是正則表達(dá)式的元字符

          1.3.      JavaScript正則表達(dá)式的元字符

          1.3.1.      Character Classes

          用來匹配字符串中特定的字符

          字符

          匹配

          例子

          […]

          匹配方括號里面的任何一個(gè)字符

          [a-z]:表示匹配az的任何一個(gè)小寫字符

          g[ae]y:表示可以匹配gay或者gey,但是不可以匹配gaey

          [^…]

          不可以匹配方括號里面的任何一個(gè)字符

          [^a-z]:表示不可以匹配az的任何一個(gè)小寫字符

          "\w

          匹配任何一個(gè)單詞字符。等價(jià)于[a-zA-Z0-9_]

           

          "\W

          匹配任何一個(gè)單詞字符。等價(jià)于[^a-zA-Z0-9_]

           

          "\d

          匹配任何一個(gè)單詞數(shù)字。等價(jià)于[0-9]

          /^[1-9]\d*$/表示匹配以19中任何一個(gè)數(shù)字為開始,后面跟著任意多個(gè)(0或者多個(gè))數(shù)字的字符串。即正整數(shù)

          "\D

          匹配任何一個(gè)單詞數(shù)字。等價(jià)于[^0-9]

           

          "\s

          匹配任何空白字符。

           

          "\S

          匹配任何非空白字符

           

           

           

          1.3.2.      Repetition Characters

          用來定義其前導(dǎo)部分重復(fù)出現(xiàn)的次數(shù)

          字符

          匹配

          例子

          {n,m}

          表示其前導(dǎo)部分連續(xù)最少出現(xiàn)n次,最多出現(xiàn)m

          注意在逗號和兩個(gè)數(shù)之間不能有空格。n,m是一個(gè)非負(fù)整數(shù)

          o{1,3}: 將匹配 "fooooood" 中的前三個(gè) o

          {n}

          表示其前導(dǎo)部分連續(xù)出現(xiàn)n

          n 是一個(gè)非負(fù)整數(shù)

          o{2}: 不能匹配 "Bob" 中的 'o',但是能匹配 "food" 中的兩個(gè) o

          {n,}

          表示其前導(dǎo)部分連續(xù)最少出現(xiàn)n

          n 是一個(gè)非負(fù)整數(shù)

           

          +

          表示其前導(dǎo)部分連續(xù)最少出現(xiàn)1次,等價(jià)于{1,}

           

          *

          表示其前導(dǎo)部分連續(xù)最少出現(xiàn)0次,即出現(xiàn)0次,或者多次。等價(jià)于{0,}

           

          ?

          表示其前導(dǎo)部分連續(xù)可以出現(xiàn)0次,或者1次。等價(jià)于{0,1}

          /"w{3}"d?/ : 表示匹配3個(gè)單詞字符和一個(gè)可選數(shù)字

          1.3.3.      Anchor Characters

          ...待續(xù)


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 虎林市| 怀安县| 平武县| 承德县| 寿宁县| 大埔县| 宁晋县| 银川市| 定兴县| 阿尔山市| 祁连县| 屏边| 延川县| 石泉县| 会宁县| 文安县| 元氏县| 上犹县| 池州市| 榆树市| 栾城县| 广河县| 苍梧县| 沂源县| 囊谦县| 宣汉县| 朔州市| 城口县| 石屏县| 青冈县| 绵竹市| 牡丹江市| 兴安县| 留坝县| 车致| 杨浦区| 安龙县| 平昌县| 馆陶县| 常熟市| 繁昌县|