js 정규 표현 식 replace 변수 교체 방법

5665 단어
JavaScript 정규 실전 (최근 에 쓴 것 에 따라 계속 업데이트)
1. javascript 정규 대상 교체 생 성 및 용법: / pattern / flags 먼저 간단 한 사례 학습 인식 에서 replace 가 무엇 을 할 수 있 는 지
정규 표현 식 구조 함수: new RegExp ("pattern" [, "flags"]);정규 표현 식 대체 변수 함수: stringObj. replace (RegExp, Replace Text);
매개 변수 설명:
pattern -- 정규 표현 식 텍스트 flags -- 존재 한다 면 다음 값 입 니 다: g: 전역 일치 i: 대소 문자 gi: 이상 조합 무시

//         url     ,   urlRewrite     Url
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");
alert(rep);

//    ,           
var rep2=url.replace(reg,function(m,p1,p2,p3){return p1+"ShowBook.aspx?bookId="+p3+"&chapterId="+p3});
alert(rep2);

//   ,            
var rep3=url.replace(reg,function(){var args=arguments; return args[1]+"ShowBook.aspx?bookId="+args[2]+"&chapterId="+args[3];});
alert(rep3);


//   
//          ,             ,         
var bookId;
var chapterId;
function capText()
{
  var args=arguments; 
  bookId=args[2];
  chapterId=args[3];
  return args[1]+"ShowBook.aspx?bookId="+args[2]+"&chapterId="+args[3];
}

var rep4=url.replace(reg,capText);
alert(rep4);
alert(bookId);
alert(chapterId);


//  test      
var reg3=new RegExp("(http://www.qidian.com/BookReader/)(\\d+),(\\d+).aspx","gmi");
reg3.test("http://www.qidian.com/BookReader/1017141,20361055.aspx");
//      
alert(RegExp.$1); 
alert(RegExp.$2);
alert(RegExp.$3);

2. 학습 에 가장 많이 사용 되 는 test exec match search  replace  split 6 가지 방법
1) test  지정 한 문자열 에 var data = "123123 〃; var reCat = / 123 / gi; alert (reCat. test (data) 가 있 는 지 확인 합 니 다.  //true / / 문자 가 존재 하 는 지 확인 합 니 다.  계속 내 려 가세 요.  대소 문자 구분 안 함
2) exec 반환 조회 값 var data = "123123, 213, 12312, 312, 3, Cat, cat, dsfsdfs,"; var reCat = / cat / i; alert (reCat. exec (data);  //Cat
3)match  검색 배열 var data = "123123, 213, 12312, 312, 3, Cat, cat, dsfsdfs,"; var reCat = / cat / gi; var arrMactches = data. match (reCat) for (var i = 0; i < arrMactches. length; i +) {alert (arrMactches [i]);   //Cat  cat }
4) search  검색 위치 되 돌리 기  index of var data = "123123, 213, 12312, 312, 3, Cat, cat, dsfsdfs,"; var reCat = / cat / gi; alert (data. search (reCat) 와 유사 합 니 다.  //23
5) replace  대체 문자  정규 로 var data 를 교체 합 니 다 = "123123, 213, 12312, 312, 3, Cat, cat, dsfsdfs,"; var reCat = / cat / gi; alert (data. replace (reCat, "libinqq");
6)split   정규 분할 배열 var data = "123123, 213, 12312, 312, 3, Cat, cat, dsfsdfs";var reCat = /\,/; var arrdata = data.split(reCat); for (var i = 0; i < arrdata. length; i + +) {alert (arrdata [i]);} 3 、 상용 표현 식 수집:
"^ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ d + 정수 (정수 + 0)" ^ ^ [0 - 9] * [0 - 9] [0 - [0 - 9] * * $"/ 정정 수" ^ (((- \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ d + +)?? \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 0) "^ ([0 - 9] + \ \ \ \. [0 - 9] * [1 - 9] [0 - 9] *) | ([0 - 9] * [1 - 9] [0 - 9] * \ \ \ \ \ \. [0 - 9] +) | ([0 - 9] *[1 - 9] [0 - 9] [0 - 9] *) $"/ / 정부동 소수점 수" ↑ (- \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ d +) | (0 + (0 + (\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 0 +)) $"/ (0 + (0 + (0 + (\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 0 + 0) / 부정 부동 소수점 수 (마이너스 + 0)" ^ (- (- 0 - 9] + \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ^ (-? \ \ \ \ d +) (\ \ \. \ \ \ d +)? $"/ / 부동 소수점" ^ [A - Za - z] + $"/ / 26 개의 영문 자모 로 구 성 된 문자열" ^ [A - Z] + $"/ / 영문 자모 26 개 대문자 로 구 성 된 문자열 "^ [a - z] + $" / / 영문 자모 26 개 소문 자로 구 성 된 문자열 "^ [A - Za - z0 - 9] + $" / 숫자 와 영문 자모 26 개 로 구 성 된 문자열 "^ \ \ \ w + $" / 숫자 26 개 영문 자모 또는 밑줄 로 구 성 된 문자열 "^ [\ \ \ w -] + (\ \ \ w -] +) * * @ [\ \ \ w -] + (\ \ \ \ \ w -] +)[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$"  //url "^[A-Za-z0-9_]*$"。
정규 표현 식 기초 지식
^ 입력 이나 한 줄 의 시작 과 일치 합 니 다. / ^ a / "an A" 와 일치 합 니 다. "An a" $는 입력 이나 한 줄 의 끝 과 일치 하지 않 습 니 다. / a $/ "An a" 와 일치 하지 않 고 "an A" 와 일치 하지 않 습 니 다.* 앞의 문자 와 0 번 또는 여러 번 일치 합 니 다. / ba * / b, ba, baa, baaa + 는 앞의 문자 와 1 번 또는 여러 번 일치 합 니 다. / ba + / 는 ba, baa, baaa 와 일치 합 니 다. 앞의 문자 와 0 번 또는 1 번 일치 합 니 다. / ba? / b, ba (x) 와 일치 하 는 x 를 $1... $9 의 변수 에서 x | y 매 칭 x 또는 y {n} 은 n 회 {n,} 과 n 회 이상 일치 합 니 다 {n, m} 은 n - m 회 [xyz] 문자 집합 과 일치 합 니 다.(character set), 이 집합 에 있 는 모든 문자 (또는 메타 문자) [^ xyz] 와 일치 하지 않 습 니 다. [\ b] 는 이 집합 에 있 는 모든 문자 와 일치 하지 않 습 니 다./ \ D 는 비 글자 수 문자 와 일치 합 니 다. / \ D / = / [^ 0 - 9] / 줄 바 꿈 문자 와 일치 합 니 다 \ \ r 는 Enter 문자 와 일치 합 니 다 \ s 는 공백 문자 와 일치 합 니 다. \ r, \ f, \ t, \ t, \ v 등 \ S 는 비 공백 문자 와 일치 합 니 다. / [^ \ f \ r \ t \ t \ v] / \ t 는 탭 문자 와 일치 합 니 다 \ v 는 중 직 탭 문자 와 일치 합 니 다 \ w 는 단 어 를 구성 할 수 있 는 문자 와 일치 합 니 다.(alphanumeric, 이것 은 나의 의역 입 니 다. 숫자 포함) 밑줄 을 포함 합 니 다. 예 를 들 어 [\ w] 는 '$5.98' 중의 5 와 일치 합 니 다. [a - zA - Z0 - 9] \ W 는 단 어 를 구성 할 수 없 는 문자 와 일치 합 니 다. 예 를 들 어 [\ W] 는 '$5.98' 중의 $와 일치 합 니 다. [^ a - zA - Z0 - 9] 와 같 습 니 다.

좋은 웹페이지 즐겨찾기