目錄
常用的正規字元" >常用的正規字元
RegExp type" >RegExp type
常用实例" >常用实例
首頁 web前端 js教程 關於js正規表示式詳解

關於js正規表示式詳解

Mar 26, 2017 pm 05:21 PM

正規表示式非常有用,尋找、匹配、處理字串、替換和轉換字串,輸入輸出等。下面整理一些常用的正規表示式。

常用的正規字元

1.\ :將下一個字元標記為一個特殊字元、或一個原義字元、或一個向後引用、或一個八進位轉義符。例如,'n' 匹配字元 "n"。 'n' 符合一個換行符。序列'\' 匹配"" 而"(" 則匹配"("。

#2.^ :符合輸入字串的開始位置。 ##$

:符合輸入字串的結束位置。 4.*

:符合前面的子運算式零次或多次。符合"z" 以及"zoo"。 :符合前面的子表達式一次或多次。 ##6.?:符合前面的子表達式零次或一次。可以符合"do" 或"does" 中的"do" 。 }

:n 是一個非負整數。的兩個o。匹配n 次。 o{0,}' 則等價於'o*'。 ##:m 和n 均為非負整數,其中n <= m。 。 #?:當字元緊接在任何其他限制符(*, +, ?, {n}, {n,}, {n,m}) 後面時,匹配模式是非貪婪的。非貪婪模式盡可能少的匹配所搜尋的字串,而預設的貪婪模式則盡可能多的匹配所搜尋的字串。例如,對於字串 "oooo",'o+?' 將匹配單個 "o",而 'o+' 將匹配所有 'o'。 11.

·#:符合 "n" 以外的任何單一字元。若要符合包括 'n' 在內的任何字符,請使用象 '[.n]' 的模式。 12.

(pattern):符合 pattern 並取得此符合。所取得的符合可以從產生的 Matches 集合中得到,在VBScript 中使用 SubMatches 集合,在JScript 中則使用 $0…$9 屬性。若要匹配圓括號字符,請使用 '(' 或 ')'。

13.(?:pattern):匹配pattern 但不取得匹配結果,也就是說這是一個非獲取匹配,不進行儲存以供以後使用。這在使用 "或" 字元 (|) 來組合一個模式的各個部分是很有用。例如, 'industr(?:y|ies) 就是一個比 'industry|industries' 更簡單的表達式。

14.(?=pattern):正向預查,在任何符合pattern 的字串開始處匹配查找字串。這是一個非獲取匹配,也就是說,該匹配不需要獲取供以後使用。例如,'Windows (?=95|98|NT|2000)' 能符合 "Windows 2000" 中的 "Windows" ,但不能符合 "Windows 3.1" 中的 "Windows"。預查不消耗字符,也就是說,在一個匹配發生後,在最後一次匹配之後立即開始下一次匹配的搜索,而不是從包含預查的字符之後開始。

15.(?!pattern):負向預查,在任何不符合pattern 的字符字串開始處匹配查找字串。這是一個非獲取匹配,也就是說,該匹配不需要獲取供以後使用。例如 'Windows (?!95|98|NT|2000)' 能符合 "Windows 3.1" 中的 "Windows",但不能符合 "Windows 2000" 中的 "Windows"。預查不消耗字符,也就是說,在一個匹配發生後,在最後一次匹配之後立即開始下一次匹配的搜索,而不是從包含預查的字符之後開始

16.x|y:符合x 或y。例如,'z|food' 能匹配 "z" 或 "food"。 '(z|f)ood' 則符合 "zood" 或 "food"。

17.[xyz]:字元集合。匹配所包含的任意一個字元。例如, '[abc]' 可以符合 "plain" 中的 'a'。

18.[^xyz]:負值字元集合。匹配未包含的任意字元。例如, '1' 可以符合 "plain" 中的'p'。

19.[a-z]:字元範圍。符合指定範圍內的任意字元。例如,'[a-z]' 可以匹配 'a' 到 'z' 範圍內的任意小寫字母字元。

20.[^a-z]:負值字元範圍。匹配任何不在指定範圍內的任意字元。例如,'2' 可以匹配任何不在 'a' 到 'z' 範圍內的任意字元。

21.\b#:符合一個單字邊界,也就是指單字和空格間的位置。例如, 'erb' 可以匹配"never" 中的 'er',但不能匹配 "verb" 中的 'er'。

22.\B#:符合非單字邊界。 'erB' 能符合 "verb" 中的 'er',但不能符合 "never" 中的 'er'。

23.\cx#:符合 x 所指明的控製字元。例如, cM 會比對一個 Control-M 或回車符。 x 的值必須為 A-Z 或 a-z 之一。否則,將 c 視為一個原義的 'c' 字元。

24.\d#:符合一個數字字元。等價於 [0-9]。

25.\D#:符合一個非數字字元。等價於 3。

26.\f#:符合一個換頁符號。等價於 x0c 和 cL。

27.\n: Matches a newline character. Equivalent to x0a and cJ.

28.\r: Matches a carriage return character. Equivalent to x0d and cM.

29.\s: Matches any whitespace characters, including spaces, tabs, and form feeds etc. Equivalent to [fnrtv].

30.\S: Matches any non-whitespace characters. Equivalent to 4.

31.\t: Matches a tab character. Equivalent to x09 and cI.

32.\v: Matches a vertical tab character. Equivalent to x0b and cK.

33.\w: Matches any word character including an underscore. Equivalent to '[A-Za-z0-9_]'.

34.\W: Matches any non-word characters. Equivalent to '5'.

35.\xn: Match n, where n is a hexadecimal escape value. The hexadecimal escape value must be exactly two digits long. For example, 'x41' matches "A". 'x041' is equivalent to 'x04' & "1". ASCII encoding can be used in regular expressions.

36.\num: Matches num, where num is a positive integer. A reference to the match obtained. For example, '(.)1' matches two consecutive identical characters.

37.\n: Identifies an octal escape value or a backward reference. If n is preceded by at least n fetched subexpressions, n is a backward reference. Otherwise, if n is an octal number (0-7), then n is an octal escape value.

38.\nm: Identifies an octal escape value or a backward reference. nm is a backward reference if nm is preceded by at least nm obtainable subexpressions. If nm is preceded by at least n obtains, then n is a backward reference followed by the literal m. If neither of the previous conditions is true, and if n and m are both octal digits (0-7), nm will match the octal escape value nm.

39.\nml: If n is an octal number (0-3), and m and l If they are all octal numbers (0-7), they match the octal escape value nml.

RegExp type

ECMAScript supports regular expressions through the RegExp type, as follows:

4e82c56ce8413588fe5e76a5cfecabd5

(\d{3}\d{4}\d{4}) 可以匹配完整的手机号,并分别提取前3位、4-7位和8-11位,"$1 $2 $3" 是在三个结果集中间加空格组成新的字符串,然后替换完整的手机号。

常用实例

匹配第一个bat或者cat,不区分大小写: <span style="color: #ff0000;">/[bc]at/i</span> 或者 new RegExp("[bc]at","i");

匹配所有以"at"结尾的3个字符组合,不区分大小写:/.at/gi;

只能输入数字:^[0-9]*$;

只能输入n位的数字:^\d{n}$

只能输入至少n位的数字:^\d{n,}$

只能输入m~n位的数字:^\d{m,n}$

只能输入零和非零开头的数字:^(0|[1-9][0-9]*)$

只能输入有两位小数的正实数:^[0-9]+(.[0-9]{2})?$

只能输入有1~3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$

只能输入非零的正整数:^\+?[1-9][0-9]*$

只能输入长度为3的字符:^.{3}$

You can only enter a string consisting of 26 English letters: ^[A-Za-z]+$

You can only enter a string consisting of numbers and 26 English letters: ^[A-Za-z0-9]+$

You can only enter a string consisting of numbers, 26 English letters or underscores: ^\w+$

##Verify User password: starts with a letter, is between 6 and 18 in length, and can only contain characters, numbers and underscores: ^[a-zA-Z]\w{5,17}$

Verify whether it contains characters such as ^%&',;=?$": [^%&',;=?$\x22]+

Only Chinese characters can be entered: ^[\u4e00-\u9fa5]{0,}$

Verify email address: ^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+( [-.]\w+)*$

Verify InternetURL: ^http://([\w-]+\. )+[\w-]+(/[\w-./?%&=]*)?$

Verify ID number (15 digits or 18 digits): ^\d{15}|\d{18}$

Verify IP address: ^((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[ 0-5]|[01]?\d\d?)$

Matches two overlapping characters, for example, "aabbc11asd", return The result is aa bb 11 three sets of matches: (\w)\1

## Matching pairs of HTML tags:

<(?[^\s>]+)[^>]*>.*>

Match numbers between 1-58:

/^([1-9]|[1-5][0-8])$/Match integers between -90 and 90 (including -90 and 90):

^(-?[1-8][0-9]|-?[1-9]|-?90|0 )$

以上是關於js正規表示式詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

建議:優秀JS開源人臉偵測辨識項目 建議:優秀JS開源人臉偵測辨識項目 Apr 03, 2024 am 11:55 AM

人臉偵測辨識技術已經是一個比較成熟且應用廣泛的技術。而目前最廣泛的網路應用語言非JS莫屬,在Web前端實現人臉偵測辨識相比後端的人臉辨識有優勢也有弱勢。優點包括減少網路互動、即時識別,大大縮短了使用者等待時間,提高了使用者體驗;弱勢是:受到模型大小限制,其中準確率也有限。如何在web端使用js實現人臉偵測呢?為了實現Web端人臉識別,需要熟悉相關的程式語言和技術,如JavaScript、HTML、CSS、WebRTC等。同時也需要掌握相關的電腦視覺和人工智慧技術。值得注意的是,由於Web端的計

PHP正規表示式驗證:數位格式偵測 PHP正規表示式驗證:數位格式偵測 Mar 21, 2024 am 09:45 AM

PHP正規表示式驗證:數位格式偵測在編寫PHP程式時,經常需要對使用者輸入的資料進行驗證,其中一個常見的驗證是檢查資料是否符合指定的數字格式。在PHP中,可以使用正規表示式來實現這種驗證。本文將介紹如何使用PHP正規表示式來驗證數字格式,並提供具體的程式碼範例。首先,讓我們來看看常見的數字格式驗證要求:整數:只包含數字0-9,可以以正負號開頭,不包含小數點。浮點

如何使用正規表示式在 Golang 中驗證電子郵件地址? 如何使用正規表示式在 Golang 中驗證電子郵件地址? May 31, 2024 pm 01:04 PM

若要使用正規表示式在Golang中驗證電子郵件地址,請執行下列步驟:使用regexp.MustCompile建立正規表示式模式,以符合有效的電子郵件地址格式。使用MatchString函數檢查字串是否與模式相符。此模式涵蓋了大多數有效的電子郵件地址格式,包括:局部使用者名稱可以包含字母、數字和特殊字元:!.#$%&'*+/=?^_{|}~-`網域至少包含一個字母,後面可以跟字母、數字或連字符頂級域名(TLD)不能超過63個字符長

如何在 Go 中使用正規表示式匹配時間戳記? 如何在 Go 中使用正規表示式匹配時間戳記? Jun 02, 2024 am 09:00 AM

在Go中,可以使用正規表示式比對時間戳記:編譯正規表示式字串,例如用於匹配ISO8601時間戳記的表達式:^\d{4}-\d{2}-\d{2}T \d{2}:\d{2}:\d{2}(\.\d+)?(Z|[+-][0-9]{2}:[0-9]{2})$ 。使用regexp.MatchString函數檢查字串是否與正規表示式相符。

js和vue的關係 js和vue的關係 Mar 11, 2024 pm 05:21 PM

js和vue的關係:1、JS作為Web開發基石;2、Vue.js作為前端框架的崛起;3、JS與Vue的互補關係;4、JS與Vue的實踐應用。

PHP正規表示式:精確匹配與排除模糊包含 PHP正規表示式:精確匹配與排除模糊包含 Feb 28, 2024 pm 01:03 PM

PHP正規表示式:精確匹配與排除模糊包含正規表示式是一種強大的文字匹配工具,能夠幫助程式設計師在處理文字時進行高效的搜尋、替換和篩選。在PHP中,正規表示式也被廣泛應用於字串處理和資料匹配。本文將重點介紹在PHP中如何進行精確配對和排除模糊包含的操作,同時結合具體的程式碼範例進行說明。精確匹配精確匹配意味著只匹配符合完全條件的字串,不匹配任何變種或包含額外字

如何在 Go 中使用正規表示式驗證密碼? 如何在 Go 中使用正規表示式驗證密碼? Jun 02, 2024 pm 07:31 PM

Go中使用正規表示式驗證密碼的方法如下:定義正規表示式模式,符合最低密碼要求:至少8個字符,包含小寫字母、大寫字母、數字和特殊字符。使用regexp套件中的MustCompile函式編譯正規表示式模式。使用MatchString方法測試輸入字串是否與正規表示式模式相符。

中文字元過濾:PHP正規表示式實踐 中文字元過濾:PHP正規表示式實踐 Mar 24, 2024 pm 04:48 PM

PHP是一種廣泛應用的程式語言,特別在Web開發領域中非常流行。在網路開發過程中,經常會遇到需要對使用者輸入的文字進行過濾、驗證等操作,其中字元過濾是一項十分重要的操作。本文將介紹如何使用PHP中的正規表示式來實現中文字元過濾的功能,並給出具體的程式碼範例。首先,我們要先明確一下中文字元的Unicode範圍是從u4e00到u9fa5,也就是所有的漢字都處於這個範圍

See all articles