《javaScript高級程序設計》閱讀:15-正則中的轉義字符(三)

常用的字符類:

/./ : 小數點,匹配除了換行符以外的所有東西,實際上等於/[^\/n]/
/\w/: 表示/[a-zA-z_]/
/\W/: 表示/[^a-zA-z_]/
/\d/: 表示/[0-9]/
/\D/: 表示/[^0-9]/
/\s/: 匹配空格和製表符
/\S/: 匹配除了空格和製表符之外的所有字符

量詞

指定個數

var pattern = /\d{3}/
匹配三個數字

指定範圍:

var pattern = /\d{1,2}/
匹配一個數字 或者兩個
var pattern = /\d{1,}/
匹配至少一個
var pattern = /\d+/
匹配至少一個
var pattern = /\d*/
匹配0個或者多個
var pattern = /\d?/
匹配至少0或者1
非貪婪的重複

正則在默認的情況下,只要條件允許,就匹配儘可能多的次數

由貪婪轉換成非貪婪模式,需要在正則後面加一個問號
比如:
var pattern = /\d*?/

非貪婪模式是儘可能少的匹配,而不是隻匹配一個

var str = 'aaab'
var pattern = /\d+?b/

返回:aaab,而不是ab
選擇、分組、引用

選擇

var str = /html|js|css/
選擇匹配,只要匹配上,後面的就會都忽略

分組

var pattern = /(ab)+/
可以匹配abab

捕獲型分組

var str = 'abc'
var pattern = /(ab)c/

返回: ['abc', 'ab']

非捕獲型分組

var str = 'abc'
var pattern = /(?:ab)c/
返回: 'abc'
var str = 'abcd'
var pattern = /(a(b(c)))/
返回: ['abc', 'abc, 'bc', 'c']

分組在模式中使用

var str = 'ab cd ab'
var pattern = /(ab) cd \1/
這裏的\1 表示第一個分組,也就是(ab)
返回: ['ab cd ab', 'ab']
var pattern = /<[a-zA-Z]+)>(.*?)<\/\1>/
首尾匹配

不匹配字符,匹配位置

var pattern = /^js/
要求j必須是從字符的首字符匹配
這裏要注意和字符類裏面的區分,字符類裏面是取反
var pattern = /js$/
要求j必須是從字符的尾匹配

如何匹配純數字呢?

var pattern = /^\d+$/
發佈了167 篇原創文章 · 獲贊 28 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章