javascript正則元字符,正則表達式常用元字符

JS正則表達式完整教程

親愛的讀者朋友,如果你點開了這篇文章,說明你對正則很感興趣。

創(chuàng)新互聯主營柳河網站建設的網絡公司,主營網站建設方案,重慶APP開發(fā)公司,柳河h5成都微信小程序搭建,柳河網站營銷推廣歡迎柳河等地區(qū)企業(yè)咨詢

想必你也了解的重要性,在我看來正則表達式是衡量程序員水平的一個標準。

關于正則表達式的教程,網上也有很多,相信你也看了一些。

與之不同的是,本文的目的是希望所有認真讀完的童鞋們,都有實質性的提高。

本文共有七章,用JavaScript語言完整地討論了的方方面面。

如果覺得文章某塊兒沒有說明白清楚,歡迎留言,能力范圍之內,老姚必做詳細解答。

構造的方法和創(chuàng)建數學表達式的方法一樣。也就是用多種元字符與運算符可以將小的表達式結合在一起來創(chuàng)建更大的表達式。正則表達式的組件可以是單個的字符、字符集合、字符范圍、字符間的選擇或者所有這些組件的任意組合。

正則表達式是由普通字符(例如字符 a 到 z)以及特殊字符(稱為"元字符")組成的文字模式。模式描述在搜索文本時要匹配的一個或多個字符串。正則表達式作為一個模板,將某個字符模式與所搜索的字符串進行匹配。

js正則表達式驗證數字大于15小于200

正則表達式如下:/^1[6-9]$|^[2-9]\d$|^1\d{2}$/。

^符號表示字符串的開頭,^1表示字符串的第一個源字符是1

$100符號表示字符串的結束

符號表示一組字符,即位置匹配[]中的任何字符,[6-9]表示字符可以是6、7、8或9中的任何字符。類似地,[2-9]表示2~9中的任何字符

\d匹配0到9之間的任何數字和任何字符

{2}表示之前匹配的字符數為2,\d{2}表示匹配的字符數為2

|表示or的關系,如果任何一個表達式匹配,則整個表達式都匹配

^1[6-9]$匹配2位數字,第1位是1,第2位是6~9,即度匹配16~19

^[2-9]\d$匹配2位數字,第一個是2~9,第二個是任意數字,即匹配20~99

^1\d{2}$匹配3位數字,第1位是1,后2位是任意數字,即匹配100~199

擴展資料:

規(guī)則表系統(tǒng)由一些普通的位字符和一些元字符組成。普通字符包括大寫字母、小寫字母和數字,而元字符有特殊的含義,我們將在下面解釋。

在其最簡單的形式中,正則表達式看起來像一個普通的查找字符串。例如,正則表達式“testing”不包含元字符;它可以匹配字符串“testing”和“testing123”,但不能匹配“testing”。

理解元字符是真正使用正則表達式的最重要的事情。

JS正則表達式詳解

RegExp是JS的正則表達式對象,實例化一個RegExp對象有 字面量 和 構造函數 2種方式。

字面量實例化RegExp對象

var reg=/js/gi;

開始和結束的斜線/是正則表達式的邊界,//中間的文本是正則表達式文本,后面的gi是正則表達式的修飾符。

構造函數實例化RegExp對象

var reg=new Regex(‘js’,’gi’);

第一個參數是正則表達式文本,第二個參數是正則表達式修飾符。

global:RegExp 對象是否具有標志 g。

ignoreCase:RegExp 對象是否具有標志 i。

lastIndex:一個整數,標示開始下一次匹配的字符位置。

multiline:RegExp 對象是否具有標志 m。

source:正則表達式的源文本。

RegExp 對象有 3 個方法:test()、exec() 以及 compile()。

test()

test() 方法檢索字符串中的指定值。返回值是 true 或 false。

示例:

var reg=/js/gi;

var result=reg.test(‘I like js’);

結果:true

exec()

exec() 方法檢索字符串中的指定值。返回值是被找到的值。如果沒有發(fā)現匹配,則返回 null。

示例:

var reg=/js/gi;

var result=reg.exec(‘I like JS’);

結果:JS

compile()

compile() 方法用于改變 RegExp。

compile() 既可以改變檢索模式,也可以添加或刪除第二個參數。

g:global全文搜索,如果不添加此參數,搜索到第一個匹配就會停止

i:ignore case 不區(qū)分大小寫,默認是區(qū)分大小寫的

m:multiple lines 多行搜索,默認只搜索第一行

正則表達式文本部分包含 原義文本字符 和 元字符, 其中的原義文本字符代表字符本身意義的字符,如abc123之類的字符。

元字符代表有特殊含義非字母字符,如\b、\w、\d、+、*、? 等。

常用的元字符

更多的JS正則元字符請參考:

一般情況下正則表達式中的一個字符對應字符串中的一個字符,如表達式ab的含義是ab。

表達式中用 [] 來定義一個字符類,表示可以匹配[]里面的這類字符,是一個泛指,而不是一一對應的關系。

如表達式[abc123],表示有其中一個字符串都可以匹配。

在字符類里面使用橫線-連接2個數字或者字母就可以構建一個范圍類,如[a-zA-z0-9-]表示可以匹配26個大小寫字母和0-9的全部數字以及橫線-。

注意,要匹配橫線”-“,必須把橫線放在最后面。

預定義類可以理解為JS默認給我們寫好的范圍類,讓我們可以使用一個簡單的元字符來使用它。如”\w”就是一個預定義類,它等價于范圍類[A-Za-z0-9_];“.”可以匹配除 “\n” 之外的任何單個字符。

邊界包含2種,一種是以字符串開始或結尾的邊界,另一種是單詞邊界

量詞表示可以匹配連續(xù)多次的元字符

JS正則表達式默認是貪婪模式匹配,它會以最多匹配原則進行查找,非貪婪模式可以讓表達式以最少匹配原則進行查找。

非貪婪模式只需要在量詞后面加上”?”即可,如”123456789″字符串想以3個數字為一組進行匹配表達式寫法/\d{3,5}?/g。

表達式中用 () 來定義一個分組,使元字符可以作用于一個表達式字符串組合,如/(js|php){3}/gi。

表達式中的每一個分組匹配的內容都是一個可以捕獲的變量,可以使用$1、$2、$3… 來取值,如表達式/(\d{4})-(\d{2})-(\d{2})/中包含$1、$2、$3。如果想忽略分組匹配的內容,需要在分組前面增加“?:”,就可以得到分組匹配之外的內容。

前瞻就是正則表達式后面加上斷言部分,它不但要匹配表達式部分,還需要滿足斷言部分,匹配的結果不會包含斷言部分。

正向前瞻 exp(?=assert) 如 “\w(?=\d)”

負向前瞻 exp(?!assert) 如 “\w(?!\d)”

match()

stringObject.match(regexp)

match() 方法可在字符串內檢索指定的值,或找到一個或多個正則表達式的匹配。

如果 regexp 沒有標志 g,那么 match() 方法就只能在 stringObject 中執(zhí)行一次匹配。

如果沒有找到任何匹配的文本, match() 將返回 null。

否則,它將返回一個數組,其中存放了與它找到的匹配文本有關的信息。該數組的第 0 個元素存放的是匹配文本,而其余的元素存放的是與正則表達式的子表達式匹配的文本。

search()

stringObject.search(regexp)

search() 方法不執(zhí)行全局匹配,它將忽略標志 g。它同時忽略 regexp 的 lastIndex 屬性,并且總是從字符串的開始進行檢索,這意味著它總是返回 stringObject 的第一個匹配的位置。

replace()

stringObject.replace(regexp/substr,replacement)

字符串 stringObject 的 replace() 方法執(zhí)行的是查找并替換的操作。它將在 stringObject 中查找與 regexp 相匹配的子字符串,然后用 replacement 來替換這些子串。如果 regexp 具有全局標志 g,那么 replace() 方法將替換所有匹配的子串。否則,它只替換第一個匹配子串。

replacement 可以是字符串,也可以是函數。如果它是字符串,那么每個匹配都將由字符串替換。但是 replacement 中的 $ 字符具有特定的含義。如下表所示,它說明從模式匹配得到的字符串將用于替換。

split()

stringObject.split(separator,howmany)

如果 separator 是包含子表達式的正則表達式,那么返回的數組中包括與這些子表達式匹配的字串(但不包括與整個正則表達式匹配的文本)

正則表達式語法語意測試工具:

網站標題:javascript正則元字符,正則表達式常用元字符
文章轉載:http://m.kartarina.com/article44/dsesphe.html

成都網站建設公司_創(chuàng)新互聯,為您提供做網站網站制作App設計標簽優(yōu)化企業(yè)網站制作品牌網站制作

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯

搜索引擎優(yōu)化
主站蜘蛛池模板: 中文字幕av无码无卡免费 | 无码精品蜜桃一区二区三区WW| 国精无码欧精品亚洲一区| 国产拍拍拍无码视频免费| AV无码久久久久不卡网站下载| 亚洲高清无码专区视频| 日日摸日日碰夜夜爽无码| 无码午夜人妻一区二区不卡视频| 国产V片在线播放免费无码| 无码专区中文字幕无码| 国产午夜无码片在线观看 | 久久久久无码精品亚洲日韩| 亚洲精品中文字幕无码A片老| 亚洲精品无码久久毛片| 亚洲精品无码久久久久秋霞| 国产V亚洲V天堂无码| 亚洲av无码专区在线观看素人| 亚洲中文久久精品无码1| 国产成人亚洲综合无码精品 | 久久精品国产亚洲AV无码娇色 | 午夜无码熟熟妇丰满人妻| 国产在线拍偷自揄拍无码| 国产免费午夜a无码v视频| 亚洲AV无码成人网站在线观看| 无码内射中文字幕岛国片| 在线播放无码后入内射少妇| 国产在线拍揄自揄拍无码视频| 精品国产aⅴ无码一区二区| 国精品无码一区二区三区在线蜜臀| 国产精品白浆无码流出| 成人麻豆日韩在无码视频| 久久亚洲中文字幕无码| 午夜无码熟熟妇丰满人妻| 亚洲av无码av在线播放| 中日韩亚洲人成无码网站| AV无码精品一区二区三区| 中文午夜人妻无码看片| 精品人妻无码一区二区色欲产成人| 亚洲AV综合色区无码二区爱AV| 久久久久av无码免费网| 亚洲av无码专区亚洲av不卡|