2010-05-27 3 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> 

В основном я whant заменить «something2 в [tabelas] [что-то] [otherfield] рядом количества, я играл с регулярным выражением и другие результаты этого с помощью .Привернуть (/ выражение/ххх) и новые RegExp().Javascript заменить использованием регулярного выражения

с наилучшими пожеланиями и спасибо за любую помощь.

ответ

0
  1. Вам нужно удвоить доступ, чтобы побег просматривался конструктором regexp, а не парсером Javascript. "\[" приведет к строке [, "\\[" приведет к \[.
  2. Имейте в виду, что regexp \[.+\] соответствует строкам, например [abc][def]. Вероятно, вы хотите \[\w+\] или что-то подобное.
0

Если построить RegExp из синтаксиса new RegExp(...), то вам нужно два обратной косой черты, чтобы избежать характера .

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

Кроме того, я считаю, что он хочет '\\\ [[^ \\\]] + \\\]' вместо '\\\ [. + \\\]' – Tomalak

+0

ваш ответ был также хорош, но Я могу только проголосовать: S –

Смежные вопросы