2011-01-31 7 views
0

q="AWORD"이 포함 된 문자열이 있는데 q="AWORD"q="THEWORD"으로 바꾸고 싶습니다. 그러나, 나는 AWORD가 무엇인지 모르겠다. 문자열과 정규 표현식을 결합하여 값을 알지 못하고 매개 변수를 대체 할 수 있습니까? 이것은 내가 지금까지 가지고있는 것입니다 ...Javascript : String replace problem

globalparam.replace('q="/+./"', 'q="AWORD"'); 

답변

5

당신이 갖고있는 것은 정규 표현식이 아니라 문자열입니다. 나는 이것이 당신이 원하는 생각 : 당신이 문자열과 정규 표현식을 "결합"을 왜 생각이있어 어떻게

globalparam.replace(/q=".+?"/, 'q="THEWORD"'); 

알아요,하지만 정규식은 와일드 카드의 존재가 필요하지 않는 경우에만 . 정규식은 와일드 카드를 포함 할 수있는 패턴과 비슷하지만 그렇지 않으면 주어진 정확한 문자를 일치 시키려고합니다.

  • q="을 : 다음과 같이

    위 표현은 작동 자 q, ="을 맞 춥니 다.

  • .+?" : 다음 문자 (.)와 일치하고 그 다음 문자는 "입니다. 최소한 하나의 문자 (+)가 있어야하며 일치하는 내용은 욕심이 많지 않습니다 (?). 가능한 한 적은 수의 문자를 일치 시키려고합니다. 그렇지 않으면 .+"을 사용한 경우 까지의 모든 문자와 마지막으로 문자열의 인용 부호가 일치합니다.

Learn more about regular expressions.

2

펠릭스의 대답은 당신에게 해결책을 줄 것이다,하지만 당신은 실제로 문자열을 사용하여 정규 표현식을 구성하려는 경우 당신이 이런 식으로 수행 할 수 있습니다

var fullstring = 'q="AWORD"'; 
var sampleStrToFind = 'AWORD'; 

    var mat = 'q="'+sampleStrToFind+'"'; 
    var re = new RegExp(mat); 
    var newstr = fullstring.replace(re,'q="THEWORD"'); 

alert(newstr); 

mat = 당신이 구축 정규식, 결합 문자열 또는 무엇이든을 필요합니다.

re = RegExp 생성자, 전역, 대소 문자 구분 등을 원할 경우 여기에서 수행하십시오.

마지막 라인은 string.replace(RegExp,replacement);

입니다.