정규 표현 식 의 $1, $2 와 실제 응용

5037 단어
$1, $2 는 소괄호 그룹 안의 내용 을 표현 합 니 다. $1 은 첫 번 째 소괄호 안의 내용 이 고, $2 는 두 번 째 소괄호 안의 내용 입 니 다. 이에 따라 유추 합 니 다.
예 를 들 어 (\ \ \ d {4}) (\ \ d {2}) (\ \ \ d {2})  "20190919" 와 일치 합 니 다. $1 은 첫 번 째 괄호 에서 일치 하 는 2019 이 고, 2 달러 는 두 번 째 괄호 에서 일치 하 는 09 이 며, 3 달러 는 세 번 째 괄호 에서 일치 하 는 19 이다.
그리고 간단 한 시간 포맷 함 수 를 실현 할 수 있 습 니 다.
//     :yyyymmdd -> yyyy-mm-dd,type=true ,yyyy-mm-dd -> yyyymmdd
dateFormate (date, type) {
  if (date) {
    return type ? date.replace(/-/g, '') : date.replace(/^(\d{4})(\d{2})(\d{2})$/, '$1-$2-$3')
  }
},

   "20112233" .replace(/^(\d{4})(\d{2})(\d{2})$/, "$1-$2-$3" )
   "20112233" .replace(/(\d{4})(\d{2})(\d{2})/, "$1-$2-$3" )
 str. replace (reg, function () {}) 는 응용 하 는 곳 이 많 습 니 다. 가장 기본 적 인 것 은 str 가 숫자 입 니 다. 예 를 들 어 이 숫자 들 을 대문자 로 바 꾸 려 는 것 입 니 다.
var ary=[" "," "," "," "," "," "]
"123456".replace(/\d/g,function(i){
    return ary[i - 1];
})

또 하나의 용법 은 문자열 을 바 꾸 지 않 고 replace 를 이용 하여 몇 번 일치 할 수 있 습 니 다. 이 function 은 몇 번 의 특성 을 수행 하여 일 을 합 니 다. 예 를 들 어 시간 문자열 을 포맷 하 는 등 입 니 다.
$1 -- $9 는 RegExp 가 직접 가지 고 있 습 니 다. 일치 하 는 것 을 풀 어 주면 있 습 니 다.test exec str 의 replace 는 모두 있 습 니 다.작은 괄호 안에 있 는 작은 정규 가 캡 처 한 내용 을 나 누 는 것 을 대표 합 니 다.  /^(\d{4})[\/-](\d{1,2})[\/-](\d{1,2})$/, , $1 $2 $3 。
var reg=new RegExp("(http://www.qidian.com/BookReader/)(\\d+),(\\d+).aspx","gmi");
var url="http://www.qidian.com/BookReader/1017141,20361055.aspx";

var rep=url.replace(reg,"$1ShowBook.aspx?bookId=$2&chapterId=$3");

       , reg         "()",  `("(http://www.qidian.com/BookReader/)` ,`(\\d+)`,
$n n ,
$n 。
$1 : http://www.qidian.com/BookReader/ $2 : 1017141 $3 : 20361055

위의 replace 는 실제 콜론 뒤의 내용 으로 콜론 앞의 '$n' 을 대체 하 는 것 을 보 았 습 니 다. 콜론 뒤의 내용 은 실제 정규 안의 '()' 그룹 정규 표현 식 이 url 에 일치 하 는 내용 입 니 다.

좋은 웹페이지 즐겨찾기