第四篇、javascript

來源:互聯網
上載者:User

標籤:添加   xxx   perl   理解   attribute   style   等價   space   string   

一、Regex

提示:此專題需要多輪複習反覆的加深和理解

Regex的兩種用法:

1)regexp.xxx(string);

2)string.yyy(regexp);

驗證使用者輸入的手機號格式是否合法       var regexp=/^1[3-8]\d{9}$/;        var input="15012345678";        console.log(regexp.test(input))

Regex主要用於表單驗證

1、直接量字元

 定義一個Regex對象可以使用perl風格的直接量文法

/pattern/attributes

說明

直接量字串左右不能添加‘或者”(引號)

兩個/不能省略

參數pattern是一個Regex字串

參數attribute是一個可選的字串,可以在“g”,“i”和“m”範圍內指定,分別用於指定全域匹配、區分大小寫匹配和多行匹配

2、字元類

 所有的單個大小寫字母、數字都是一個Regex,用以匹配單個字元,這個字元與它本身相同

        var regexp=/ipod/;        var data=‘apple ipod is No.123 cool?‘;        console.log(regexp.test(data));//false        var regexp=/ipod/;        var data=‘apple ipod is No.123 cool?‘;        console.log(regexp.test(data));//true
View Code

Regex有些字元有特殊的文法含義,是不能直接使用的,必須使用\進行轉義後才能使用

. \ / * ? + [ ( ) ] { } ^ $ |

 

 位置匹配

^   在/[^123]/  表示匹配除了123的

      /^1[123]/   表示包含123的並且以1開頭的

 $    表示以什麼結尾

|     /[123|456]/   表示匹配123或者456其中一個

,    /[123x,]/    表示匹配123x中任意一個

\b    表示匹配字元的邊界

\B    匹配字串的非邊界   例子:“his  history  is so”  如果匹配history中的his  /[/bhis/B]            

 

3、重複

 Regex中可以使用如下特殊字元定義字元的出現頻次---量詞元字元

 

重複字元   含義                                  樣本n?        匹配零次或者一次字元n          /a?/n*         匹配零次或者多次字元n           /a*/n+        匹配一次或者多次字元n            /a+/n{x}     匹配字元n出現x次                 /a{3}/   /\d{9}/表示數字出現9次 n{x,y}  匹配字元n出現x到y次             /a{2,4}/   n{x,}    匹配字元n的出現>=x次          /a{3,}/

4、選擇、分組和引用

 範圍選取,用於指定一個匹配的範圍

文法              含義                                    樣本[abc]      匹配指定集合內的任一個字元        /[3458]/[^abc]    匹配不在指定集合內的任一字元    /[^12679]/[a-z]       匹配任一個小寫字元                  /[a-z]/[0-9]      匹配任一個數字                        /0-9/[A-Z]      匹配任一個大寫字元                  /A-Z/[A-z]       匹配大寫A到消協z的所有字元,          /[A-z]/                即A-Z[\]^_`a-z                   /[--籲]/  exp|exp2    使用|進行條件選擇                   /ex|Ex|post|Post/(expl)     使用()指定分組  ------子運算式

 

Regex中可以使用如下元字元引用來進行簡化

1 文法              含義                             樣本2 \d       匹配一個數字                      /\d/等價於/[0-9]/3 \D       匹配一個非數字                  /\D/等價於  /[^0-9]/4 \w       匹配一個數字/字母/底線      /\w/等價於/[0-9a-zA-Z]/5 \W      匹配一個非數字/字元/底線      /\W/等價於/[^0-9a-zA-Z]/6 \s        匹配一個空白字元(space)     /\s/等價於/[\n\r\t\v\f]/7 \S       匹配一個非空白字元                 /\S/等價於/[^\n\r\v\t\f]/8 .         匹配除了斷行符號和分行符號的任何單個字元    /./ 等價於  /[^\n\r]/     

分組匹配  ,使用()把多個字元組成一個整體,這樣的每個整體都會自動獲得1、2、3、...這樣的分組

()       /(abc){3}/    表示以abc為一組的匹配3組  

/(abc)(xvv)(xx)2/  表示匹配(abc)  (xvv)這兩個分組

/(aa)(bb)(cc)/2/     表示匹配(bb)這個分組

 5、Regex中的屬性修飾符

 /運算式內容/屬性修飾符

屬性修飾符可以在下面三個範圍內選擇

1)i  匹配的時候忽略大小寫

2)g  執行全域匹配,找到一次匹配後仍然繼續,知道結尾

3)m  執行多汗匹配,會影響^(原本只匹配整個字串的開頭)和$(原來只匹配整個字串結尾)的含義,匹配每一行的開頭和結尾

 

第四篇、javascript

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.