2012-10-03 2 views
0

가능한 중복 :
Converting user input string to regular expression
javascript new regexp from stringregex 문자열을 자바 스크립트로 저장 하시겠습니까?

내가 자바 스크립트에서 정규식에 문제가 조금 (나도 아직 자바 스크립트에서 정규식을 사용하고 있지 않다) 데 . 나는 문자열에 몇 가지 물건을 대체 싶어 내가 정규식을 작성하기위한 구문이 같은 ' 또는 "없는 것 같다주의 : 의도 한대로 var replacedtitle = title.replace(/\[.*?\]/g, "");

이제이 모든 작업,하지만 사용자가 자신을 추가 할 수 있도록 코드를 변경하지 않고 인터페이스에서 regexes (코드 작성하지 않은 친구를위한 비공개 프로젝트를 수행하고 있습니다. 다시 포장해야하는 새로운 항목을 다시 패키징해야 할 때 입력 할 정규식을 보내고 싶습니다. 모든 일마다). 나는 xul 텍스트 박스 (이것은 firefox addon이지만 html 텍스트 박스 인 경우와 동일해야 함)를 사용하여 정규 표현식을 입력하고 JSON 객체에 추가하여 저장합니다. 나는 이런 일을 시도했다 :

var replacedtitle = ""; 
for(a = 0; a < regex.data.length;a++){ 
    replacedtitle = title.replace(regex.data[a].regex, ""); 
} 

그러나 작동하지 않을 것이다. 나는 그것이 regex.data[a].regex이 문자열로 취해질 것이기 때문에 의심 스럽지만, replace()는 첫 번째 매개 변수로 문자열을 취하지 않는 것 같습니까?

나는 이것에 대해 조금 불확실하지만, 어떤 도움이 많이 주시면 감사하겠습니다.

답변

7

대신 new을 사용하여 RegEx 개체를 만들고 패턴 및 수정 자에 문자열을 제공 할 수 있습니다.

var re = new RegExp("\\[.*?\\]", "g"); 
+0

오. 감사합니다. 이 시도했지만 정규식 주위에'/'제거해야했다 몰랐다. 이제 올바르게 작동합니다.> – galaxyAbstractor

+1

@ raina77ow - 편집 해 주셔서 감사합니다. 너무 빠릅니다. –

-1
var string = "/\[.*?\]/g"; 
var regex = new RegExp(string); 

ll 정상적으로 작동합니다.

0

문자열을 패턴 및 수정 자로 나눕니다.

function getRegFromString(string){ 

    var a = string.split("/"); 
    modifiers= a.pop(); a.shift(); 
    pattern = a.join("/"); 
    return new RegExp(pattern, modifiers); 
} 
getRegFromString("/\[.*?\]/gim"); 
관련 문제