2012-02-25 2 views
1

나는 다른 개발자가 작성한 올 코드 건너하고 나는 그것이 수행되고 있는지 작동하지 않을 수 있습니다대체 (/ (<([^>) +)>)/ig, "") 무엇을 하시겠습니까?

title.replace(/(<([^>]+)>)/ig," ") 
+0

@RobW가 지적했듯이,이 정규식을 사용하여 스크립트 주입을 차단하고 싶지는 않습니다. – bdares

+1

좋은 예가 왜 * 항상 * * * 어떤 * reg exp가 코멘트에서해야한다고 생각하는지. –

답변

15

그것은 공간, " "와 (양식 <...>에 문자열) 모든 태그를 대체합니다.

  • +             ... 권리 태그 아무것도하지만 - 왼쪽 태그
  • [^>] -

    • <             - :

      는 여기에 정규 표현식 고장입니다 ... 한 번 이상

    • >             - 오른쪽 태그.

    ()은 어쨌든 사용되지 않는 표현식의 그룹을 둘러 쌉니다.

    /ig 접미사와 합니다 (rexeg 어떤 편지를 언급하지 않기 때문에,이 경우 무의미) 정규식이 경우 내가 nsensitive 것을 말한다 g lobal 모든 발생을 교체해야한다는.

  • +1

    +1 나 자신을 더 좋게 또는 단순하게 말하지 못했을 수도있다. –

    +2

    괄호는이 정규식에서 불필요하다. – Phrogz

    +2

    태그를 제거하는 것은 매우 거칠고 불완전한 RegExp입니다 : '''"대신'Evil? ">을 사용합니다. 패턴 자체는 대소 문자를 구분하지 않기 때문에'i' 플래그는 선택 사항입니다. –

    3

    HTML 시작 또는 끝 태그를 대체하는 것처럼 보입니다. 혹시 Regex 표현식을 파싱하거나 테스트해야 할 필요가 있다면 여기에 훌륭한 사이트가 있습니다. http://myregextester.com/index.php

    NODE      EXPLANATION 
    ---------------------------------------------------------------------- 
    (?i-msx:     group, but do not capture (case-insensitive) 
             (with^and $ matching normally) (with . not 
             matching \n) (matching whitespace and # 
             normally): 
    ---------------------------------------------------------------------- 
        (      group and capture to \1: 
    ---------------------------------------------------------------------- 
        <      '<' 
    ---------------------------------------------------------------------- 
        (      group and capture to \2: 
    ---------------------------------------------------------------------- 
         [^>]+     any character except: '>' (1 or more 
               times (matching the most amount 
               possible)) 
    ---------------------------------------------------------------------- 
        )      end of \2 
    ---------------------------------------------------------------------- 
        >      '>' 
    ---------------------------------------------------------------------- 
    )      end of \1 
    ---------------------------------------------------------------------- 
    )      end of grouping 
    ---------------------------------------------------------------------- 
    
    +1

    바깥 쪽 괄호는 정규식에 없기 때문에 혼란 스럽습니다. – Phrogz

    +0

    @Phrogz - 그들은 존재하지만 원시 패턴에 추가 할 필요는 없습니다. 정규 표현식은 때때로 혼란 스럽기 때문에 혼자가 아닙니다. –

    관련 문제

     관련 문제