2009-06-24 3 views
4

먼저 정규 표현식에 대해 많이 알지 못하므로 픽업하기가 어렵 기 때문에 책을 구입해야합니다.패턴의 모든 인스턴스를 Javascript/jQuery의 정규 표현식으로 바꿉니다.

궁극적으로 나는 dom 요소를 가져 와서 대괄호 "["와 "]"안에있는 텍스트를 대체하고 텍스트 주위에 링크를 삽입하고 문자열에 여러 개의 대괄호 세트가있을 수 있습니다.

function changeTip() { 
     var link = '<a href="' + $('#txtURL').attr('value') + '" target="_blank">'; 
     $('.tipoftheweektip').html($('#txtTip').attr("value").replace('[', link).replace(']', '</a>')); 
    } 

이 제외 작동합니다 닫는 직선 브래킷을 밤은 경우 브래킷의 두 번째 세트에

  • 나던 작품은
  • , 그것은 개방 직선 브래킷하기 전에 모든 텍스트를 삭제

예제를 살펴 봤는데 정규식 코드에서 직선 대괄호가 사용 되었기 때문에 대괄호를 찾아 바꾸는 방법을 파악할 수 없습니다.

공유 할 수있는 비슷한 작업을 해 준 사람이 있습니까? 미리 감사드립니다.

답변

11

즉, [및] 사이의 텍스트를 찾아 링크 값, 텍스트 자체 및 ''로 바꿉니다. 이렇게하면 대괄호를 일치시킬 수 있습니다. 'g'는 '여러 번 (세계적으로)'을 의미합니다.

+0

이 사이트는 자바 스크립트 또는 .NET 중 하나에서 정규 표현식을 테스트 할 수있는 공간을 제공합니다. 또한 많은 샘플이 포함되어 있지만 항상 올바른 것은 아닙니다. http://www.regexlib.com/RETester.aspx –

+0

감사합니다. 당신 말이 맞아요, 나는 대괄호를 찾는 것에 대해 생각하지 않았습니다. 나는 매일 무언가를 배운다! –

+0

해당 g 플래그는 여러 브라우저에서 호환되지 않습니다. –

0

전체 문자열을 반복하고 선택한 단어 나 구문을 다른 문자열로 바꿉니다.

VAR 문자열 =

VAR 새 문자열 "이. 당신이 텍스트 내에서 단어/문구의 모든 인스턴스를 몇 가지 테스트 텍스트를 대체 할 수있다"(복잡한의 종류는하지만, 작품과 매우 재사용) = string.findAndReplace ("text", "BOO!");

Object.prototype.findAndReplace = function(searchText, replace) { 
    var matchCount = 0; 
     var text = this; 

     for(var i = 0; i<text.length; i++) { 
      var textSearched = ""; 

      for(var x = 0; x<searchText.length; x++) { 
       var currentText = text[i+x]; 

       if(currentText != undefined) { 
        textSearched += currentText; 
       } 
      } 

      if(textSearched == searchText) { 
       matchCount++; 
      } 

      console.log(textSearched); 
     } 

     for(var i=0; i<matchCount; i++) { 
      text = text.replace(searchText, replace); 
     } 

     return text; 
    } 
관련 문제