使用regexp替换Javascript

时间:2010-05-27 12:24:13

标签: javascript regex arrays input

<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> 

基本上我想在[tabelas] [某事物] [otherfield]中用一些数量替换“something2”,我一直在玩regexp并使用.replace(/ expression /,xxx)和新的RegExp()。

致以最诚挚的问候,谢谢您的帮助。

2 个答案:

答案 0 :(得分:0)

如果您使用new RegExp(...)语法构造一个RegExp,那么您需要两个反斜杠来转义字符。

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

答案 1 :(得分:0)

  1. 你需要双重转义,以便regexp构造函数看到转义,而不是Javascript解析器。"\["将导致字符串["\\["将导致{{ 1}}。
  2. 请注意,正则表达式\[匹配\[.+\]等字符串。您可能想要[abc][def]或类似的东西。