JavaScript正規表示式

2021-08-14 19:25:45 字數 4716 閱讀 5631

1、了解正規表示式的方法

regexp物件表示正規表示式,是對字串執行模式匹配的工具

正規表示式的基本語法如下2種:

(1)、直接量語法

/pattern/attributes;

(2)、建立regexp物件的語法

new regexp(pattern,attributes);

引數:引數pattern是乙個字串,指定了正規表示式的模式,引數attribute是乙個可選引數,包含屬性g,i,m,分別是全域性匹配,不區分大小寫匹配,多行匹配

2、支援正規表示式的string物件的方法

(1)search()方法;該方法用於檢索字串中指定的子字串,或檢索與正規表示式相匹配的字串

基本語法:stringobject.search(regexp);

返回值:stringobject中第乙個與regexp物件相匹配的子串的起始位置,如果沒有找到任何匹配的子串,則返回-1

(2)match()方法;用於在字串內檢索指定的值,或找到乙個或者多個正規表示式的匹配。

基本語法:stringobject.match(searchvalue)或者stringobject.match(regexp)

返回值:存放匹配成功的陣列,全域性匹配的話,它返回的是乙個陣列。如果沒有找到任何的乙個匹配,那麼它將返回的是null;返回的陣列內有三個元素,第乙個元素的存放的是匹配的文字,還有二個物件屬性;index屬性表明的是匹配文字的起始字元在stringobject中的位置;input屬性宣告的是對stringobject物件的引用;

測試**:

var str = "hello world";

console.log(str.match("hello")); // ["hello", index: 0, input: "hello world"]

console.log(str.match("hello")); // null

console.log(str.match(/hello/)); // ["hello", index: 0, input: "hello world"]

// 全域性匹配

var str2="1 plus 2 equal 3"

console.log(str2.match(/\d+/g)); //["1", "2", "3"]

(3)replace()方法:用於在字串中使用一些字元替換另一些字元,或替換乙個與正規表示式匹配的子字串

基本語法:stringobject.replace(regexp/substr,replacement);

引數:regexp/substr;字串或者需要替換模式的regexp物件

replacement:乙個字串的值,被替換的文字或者生成替換文字的函式

返回值:返回替換後的新字串

replacement中的$有具體的含義,如下:

1,2,3....99含義:與regexp中的第1到第99個子表示式相匹配的文字

$&的含義是:與regexp相匹配的子字串

lastmatch或regexp["$_"]的含義是:返回任何正規表示式搜尋過程中的最後匹配的字元。

lastparen或 regexp["$+"]的含義是:返回任何正規表示式查詢過程中最後括號的子匹配。

leftcontext或regexp["$`"]的含義是:返回被查詢的字串從字串開始的位置到最後匹配之前的位置之間的字元。

rightcontext或regexp["$'"]的含義是:返回被搜尋的字串中從最後乙個匹配位置開始到字串結尾之間的字元。

(4)split()方法:把乙個字串分割成字串陣列

語法:stringobject.split(separator,howmany);

引數(1)、separator【必填】,字串或正規表示式,該引數指定的地方分割stringobject

(2)、howmany【可選】,該引數指定返回的陣列的最大長度,

3、regexp物件方法

(1)test()方法:該方法用於檢測乙個字串是否匹配某個模式

基本語法:regexpobject.test(str);

@param(引數)str是需要檢測的字串;

@return (返回值)如果字串str中含有與regexpobject匹配的文字的話,返回true,否則返回false;

(2)exec()方法:該方法用於檢索字串中的正規表示式的匹配

基本語法:regexpobject.exec(string)

@param(引數):string【必填項】要檢索的字串

@return(返回值):返回乙個陣列,存放匹配的結果,如果未找到匹配,則返回值為null

注意:該返回的陣列的第乙個元素是與正規表示式相匹配的文字,該方法還返回2個屬性,index屬性宣告的是匹配文字的第乙個字元的位置;input屬性則存放的是被檢索的字串string;該方法如果不是全域性的話,返回的陣列與match()方法返回的陣列是相同的。

var str = "longen and yunxi";

console.log(/longen/.exec(str));

// 列印 ["longen", index: 0, input: "longen and yunxi"]

// 假如沒有找到的話,則返回null

console.log(/wo/.exec(str)); // null

4、了解正則中的普通字元

字母、數字、漢字,下劃線及一些沒有特殊定義的標點符號,都屬於普通字元。正則中的普通字元,在匹配字串的時候,匹配與之相同的字元即可。例如

var str = "abcde";

console.log(str.match(/a/)); // ["a", index: 0, input: "abcde"]

5、了解正則中的方括號的含義

方括號包含一系列字元,能夠匹配其中任意乙個字元。如[abc]可以匹配abc任意乙個字元。使用[^abc]包含的字元abc,則能夠匹配abc字元之外的任何乙個字元,只能是乙個字元。如下的含義:

[abc]:查詢在方括號中的任意乙個字元;

[^abc]:查詢不在方括號中的任意乙個字元

[0-9]:查詢0-9中的任意乙個字元

[a-z]:查詢從小寫a到z中的任意乙個字元

(red|blue|green):查詢小括號中的任意一項,小括號中的|是或者的意思。

元字元描述

.查詢任意的單個字元,除換行符外

\w任意乙個字母或數字或下劃線,a_za_z0_9,_中任意乙個

\w查詢非單詞的字元,等價於[^a_za_z0_9_]

\d匹配乙個數字字元,等價於[0-9]

\d匹配乙個非數字字元,等價於[^0-9]

\s匹配任何空白字元,包括空格,製表符,換行符等等。等價於[\f\n\r\t\v]

\s匹配任何非空白字元,等價於[^\f\n\r\t\v]

\b匹配乙個單詞邊界,也就是指單詞和空格間的位置。比如』er\b』可以匹配」never」中的」er」,但是不能匹配」verb」中的」er」

\b匹配非單詞邊界,'er\b'能匹配'verb'中的'er',但不能匹配'nerver'中的'er'

\0查詢null字元

\n匹配乙個換行符

\f匹配乙個換頁符

\r匹配乙個回車符

\t匹配乙個製表符

\v匹配乙個垂直製表符

\***

查詢乙個以八進位制數***規定的字元

\xdd

查詢以16進製制dd規定的字元

\u***x

查詢以16進製制數的***規定的unicode字元

6、regexp特殊字元中的需要轉義字元

匹配輸入

字串的

結尾位置

,如果需

要匹配 匹配輸入字串的結尾位置,如果需要匹配

本身的話,使用$

^ 匹配輸入字串的開始位置,匹配^本身的話,使用\^

* 匹配前面的子表示式的零次或者多次,匹配*本身的話,使用\*

+ 匹配子表示式的1次或者多次,匹配+本身的話,使用\+

. 匹配除換行符之外的任何乙個字元,匹配.本身的話,使用\.

[ 匹配乙個中括號開始,匹配本身的,使用\[

? 匹配前面的子表示式的零次或者1次,或指明乙個非貪婪限定符,要匹配本身的話,使用\?

\ 匹配本身的話,請使用\\

匹配包含x個n的序列字串 n

匹配至少x個,最多y個n的字串 n

匹配至少x個的字串 n$

匹配以n結尾的字串 ^n

匹配以n開頭的字串

?=n匹配其後緊接指定的n字串

?!n匹配其後沒有緊接指定的n字串

正規表示式實踐【常用】

1、**號碼正則

分析;**號碼有區號(3-4位數字),區號之後使用「-」與**號碼連線

分號正則:^\d

**號碼7~8位正則,分機號3-4位數字,非必填專案。如果要填寫的話。則以「-」與**號碼相連線,正則(-\d)?

因此正則匹配**號碼正則為:

/^\d-\d(-\d?$)/;

2、手機號碼正則

手機號碼需要匹配;手機號碼開頭不以0開始的,並且是11位數字,目前的手機號碼有如下開頭的:13,14,15,17,18開頭的;因此正則如下:

/(^1[3|4|5|7|8][0-9]$)/

Javascript正規表示式

這段時間學習js,正好遇到了正規表示式。下面通過使用例項介紹一下正規表示式。正規表示式,又稱正規表示法 常規表示法 英語 regular expression,在 中常簡寫為regex regexp或re 電腦科學的乙個概念。正規表示式使用單個字串來描述 匹配一系列符合某個句法規則的字串。在很多文字...

JavaScript 正規表示式

一 什麼是正規表示式 正規表示式 regular expression 是乙個描述字元模式的物件。測試正規表示式 regexp 物件包含兩個方法 test 和exec 功能基本相似,用於測試字串匹配。test 方法在字串中查詢是否存在指定的正規表示式並返回布林值,如果存在則返回true,不存 在則返...

javascript 正規表示式

正規表示式 regexp物件 主要用於表單驗證 1 建立正規表示式 1 var ret pattern pattern是內容,可以是正規表示式的內容,可以是字元或是其他的內容 2 var rag new regexp pattern 括號內可以是雙引號或者單引號 2 正規表示式的exec方法 reg...