正規表示式非常有用,尋找、匹配、處理字串、替換和轉換字串,輸入輸出等。下面整理一些常用的正規表示式。
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) 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. ECMAScript supports regular expressions through the 匹配第一个bat或者cat,不区分大小写: 匹配所有以"at"结尾的3个字符组合,不区分大小写: 只能输入数字: 只能输入n位的数字: 只能输入至少n位的数字: 只能输入m~n位的数字: 只能输入零和非零开头的数字: 只能输入有两位小数的正实数: 只能输入有1~3位小数的正实数: 只能输入非零的正整数: 只能输入长度为3的字符: You can only enter a string consisting of 26 English letters: You can only enter a string consisting of numbers and 26 English letters: You can only enter a string consisting of numbers, 26 English letters or underscores: ##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 <(? /^([1-9]|[1-5][0-8])$/Match integers between -90 and 90 (including -90 and 90): 以上是關於js正規表示式詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!:符合 pattern 並取得此符合。所取得的符合可以從產生的 Matches 集合中得到,在VBScript 中使用 SubMatches 集合,在JScript 中則使用 $0…$9 屬性。若要匹配圓括號字符,請使用 '(' 或 ')'。
(?:pattern)
:匹配pattern 但不取得匹配結果,也就是說這是一個非獲取匹配,不進行儲存以供以後使用。這在使用 "或" 字元 (|) 來組合一個模式的各個部分是很有用。例如, 'industr(?:y|ies) 就是一個比 'industry|industries' 更簡單的表達式。 (?=pattern)
:正向預查,在任何符合pattern 的字串開始處匹配查找字串。這是一個非獲取匹配,也就是說,該匹配不需要獲取供以後使用。例如,'Windows (?=95|98|NT|2000)' 能符合 "Windows 2000" 中的 "Windows" ,但不能符合 "Windows 3.1" 中的 "Windows"。預查不消耗字符,也就是說,在一個匹配發生後,在最後一次匹配之後立即開始下一次匹配的搜索,而不是從包含預查的字符之後開始。 (?!pattern)
:負向預查,在任何不符合pattern 的字符字串開始處匹配查找字串。這是一個非獲取匹配,也就是說,該匹配不需要獲取供以後使用。例如 'Windows (?!95|98|NT|2000)' 能符合 "Windows 3.1" 中的 "Windows",但不能符合 "Windows 2000" 中的 "Windows"。預查不消耗字符,也就是說,在一個匹配發生後,在最後一次匹配之後立即開始下一次匹配的搜索,而不是從包含預查的字符之後開始x|y
:符合x 或y。例如,'z|food' 能匹配 "z" 或 "food"。 '(z|f)ood' 則符合 "zood" 或 "food"。 [xyz]
:字元集合。匹配所包含的任意一個字元。例如, '[abc]' 可以符合 "plain" 中的 'a'。 [^xyz]
:負值字元集合。匹配未包含的任意字元。例如, '1' 可以符合 "plain" 中的'p'。 [a-z]
:字元範圍。符合指定範圍內的任意字元。例如,'[a-z]' 可以匹配 'a' 到 'z' 範圍內的任意小寫字母字元。 [^a-z]
:負值字元範圍。匹配任何不在指定範圍內的任意字元。例如,'2' 可以匹配任何不在 'a' 到 'z' 範圍內的任意字元。 \b
#:符合一個單字邊界,也就是指單字和空格間的位置。例如, 'erb' 可以匹配"never" 中的 'er',但不能匹配 "verb" 中的 'er'。 \B
#:符合非單字邊界。 'erB' 能符合 "verb" 中的 'er',但不能符合 "never" 中的 'er'。 \cx
#:符合 x 所指明的控製字元。例如, cM 會比對一個 Control-M 或回車符。 x 的值必須為 A-Z 或 a-z 之一。否則,將 c 視為一個原義的 'c' 字元。 \d
#:符合一個數字字元。等價於 [0-9]。 \D
#:符合一個非數字字元。等價於 3。 \f
#:符合一個換頁符號。等價於 x0c 和 cL。 \n
: Matches a newline character. Equivalent to x0a and cJ. \r
: Matches a carriage return character. Equivalent to x0d and cM. \s
: Matches any whitespace characters, including spaces, tabs, and form feeds etc. Equivalent to [fnrtv]. \S
: Matches any non-whitespace characters. Equivalent to 4. \t
: Matches a tab character. Equivalent to x09 and cI. \v
: Matches a vertical tab character. Equivalent to x0b and cK. \w
: Matches any word character including an underscore. Equivalent to '[A-Za-z0-9_]'. \W
: Matches any non-word characters. Equivalent to '5'. \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. \num
: Matches num, where num is a positive integer. A reference to the match obtained. For example, '(.)1' matches two consecutive identical characters. \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. \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. \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
RegExp
type, as follows: (\d{3}\d{4}\d{4})
可以匹配完整的手机号,并分别提取前3位、4-7位和8-11位,"$1 $2 $3"
是在三个结果集中间加空格组成新的字符串,然后替换完整的手机号。常用实例
<span style="color: #ff0000;">/[bc]at/i</span>
或者 new RegExp("[bc]at","i")
;/.at/gi
;^[0-9]*$
;^\d{n}$
^\d{n,}$
^\d{m,n}$
^(0|[1-9][0-9]*)$
^[0-9]+(.[0-9]{2})?$
^[0-9]+(.[0-9]{1,3})?$
^\+?[1-9][0-9]*$
^.{3}$
^[A-Za-z]+$
^[A-Za-z0-9]+$
^\w+$