Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用regexp替换Javascript allInput=document.getElementById('allInput'); var nivel=新数组('tabelas','produto'); 对于(变量i=0;i”+allInput.value+“”+allInput.value+”_Javascript_Regex_Arrays_Input - Fatal编程技术网

使用regexp替换Javascript allInput=document.getElementById('allInput'); var nivel=新数组('tabelas','produto'); 对于(变量i=0;i”+allInput.value+“”+allInput.value+”

使用regexp替换Javascript allInput=document.getElementById('allInput'); var nivel=新数组('tabelas','produto'); 对于(变量i=0;i”+allInput.value+“”+allInput.value+”,javascript,regex,arrays,input,Javascript,Regex,Arrays,Input,如果您使用新RegExp(…)语法构造RegExp,则需要两个反斜杠来转义字符 <input type="text" value="[tabelas][something][oas]" id="allInput"> <script type="text/javascript"> allInput = document.getElementById('allInput'); var nivel = new Array('tabelas', 'produto'); f

如果您使用
新RegExp(…)
语法构造RegExp,则需要两个反斜杠来转义字符

<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> 
  • 您需要双重转义,以便转义由regexp构造函数看到,而不是由Javascript解析器看到。
    “\[”
    将导致字符串
    [
    “\\[”
    将导致
    \[
  • 请记住,regexp
    \[.+\]
    匹配的字符串类似于
    [abc][def]
    。您可能需要
    \[\w+\]
    或类似的字符串

  • 而且,我相信他想要的是
    \\\[^\\]+\\]
    而不是
    \\\[.+\\]
    new RegExp("^\\[" + nivel[i] + "\\]\\[.+\\].+", "g");