RegExp.$1
- $9
非標準 $1, $ 2, $3, $4, $5, $6, $7, $8, $9
屬性是包含括號子串匹配的正則表達式的靜態和只讀屬性。(該特性是非標準的,請盡量不要在生產環境中使用它!)
語法
// RegExp.$_,與正則表達式匹配的完整字符串。
RegExp.$_
// RegExp.$n,(n為1-9之間的數值)指的是與正則表達式匹配的第n個子匹配(以括號為標志)字符串
RegExp.$1
RegExp.$2
RegExp.$3
RegExp.$4
RegExp.$5
RegExp.$6
RegExp.$7
RegExp.$8
RegExp.$9
描述
-
$1, ..., $9
屬性是靜態的, 他不是獨立的的正則表達式屬性. 所以, 我們總是像這樣子使用他們RegExp.$1, ..., RegExp.$9.
- 屬性的值是只讀的而且只有在正確匹配的情況下才會改變.
- 括號匹配項是無限的, 但是RegExp對象能捕獲的只有九個. 你可以通過返回一個數組索引來取得所有的括號匹配項.
- 這些屬性可以在String.replace 方法中替換字符串. 在這種情況下,不用在前面加上RegExp。下面的例子將詳細說明. 當正則表達式中不包含括號, 腳本中的 $n's 就是字面上的意思 (當n是正整數).
例子
使用replace()去匹配一個 first last 格式的 name String 實例,然后輸出 last first 格式。在替換文本中,用 $1
和 $2
表示正則表達式中括號匹配項的結果。
let regExp = /(\w+)\s(\w+)/
let str = 'Jianran Lin'
str.replace(regExp, '$2 '+ '$1') // "Lin Jianran"
console.log(RegExp.$1) // "Jianran"
console.log(RegExp.$2) // "Lin"
技術指標
非標準,不屬于當前的任何規范