2010-05-27 6 views
0
<input type="text" value="[tabelas][something][oas]" id="allInput"> 
<script type="text/javascript"> 

allInput = document.getElementById('allInput'); 

var nivel = new Array('tabelas', 'produto'); 
for (var i =0; i < nivel.length ; i++) 
{ 
alert(" oi => " + allInput.value + " <-- " + nivel[i]) ; 
var re = new RegExp("^\[" + nivel[i] + "\]\[.+\].+", "g"); 
alert(re); 
allInput.value = allInput.value.replace(
     re, "OLA"); 
alert(" oi 2 => " + allInput.value + " <-- " + nivel[i]) ; 
} 
</script> 

정규 표현식을 사용하여 교체는 기본적으로 난에 "something2을 대체 할 whant에서 [tabelas] [뭔가] [otherfield] 양의 수에 의하여, 나는 정규 표현식으로 재생이 사용 .replace에서 다른 결과를 가지고있다 (/ 표현 /, XXX)과 새로운 정규식().자바 스크립트

안부와 어떤 도움 주셔서 감사합니다.

답변

0
  1. 자바 스크립트 파서가 아닌 regexp 생성자가 이스케이프를 표시하도록 이중 이스케이프해야합니다. "\["[ 문자열로, "\\["\[이됩니다.
  2. 정규 표현식 \[.+\][abc][def]과 같은 문자열과 일치합니다. \[\w+\] 또는 비슷한 것을 원할 수도 있습니다.
0

당신이 new RegExp(...) 구문에서 정규식을 구성하는 경우, 당신은 문자를 탈출 백 슬래시가 필요합니다

new RegExp("^\\[" + nivel[i] + "\\]\\[.+\\].+", "g"); 
+0

또한 그는 \\\ [. \ \\] 대신 \\\ [[^ \\\]] + \\\]'를 원합니다. – Tomalak

+0

당신의 대답도 좋았지 만 나는 오직 하나만 투표 할 수있다 : S –