Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.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
Internet Explorer中的Javascript将%替换为$00_Javascript_String_Internet Explorer_Replace_Tapestry - Fatal编程技术网

Internet Explorer中的Javascript将%替换为$00

Internet Explorer中的Javascript将%替换为$00,javascript,string,internet-explorer,replace,tapestry,Javascript,String,Internet Explorer,Replace,Tapestry,正如预期的那样,在调用API之前,我需要对URI组件进行编码,但当它击中我们的服务器时,我们的后端框架(tapestry)过早地转换了空间: 我发现,如果我将URI%20更改为$0020,它就会正常工作。因此,下面的代码在Chrome和Firefox中工作,并将%转换为$00 function furtherEncode(uriComp) { var nonSafe = encodeURIComponent(uriComp); return nonSafe.replace(/%/g, "

正如预期的那样,在调用API之前,我需要对URI组件进行编码,但当它击中我们的服务器时,我们的后端框架(tapestry)过早地转换了空间:

我发现,如果我将URI%20更改为$0020,它就会正常工作。因此,下面的代码在Chrome和Firefox中工作,并将%转换为$00

function furtherEncode(uriComp) {
  var nonSafe = encodeURIComponent(uriComp);
  return nonSafe.replace(/%/g, "$00");
}
在InternetExplorer11(和IE10)中,它不进行替换

我试过
/\x25/g
/%/g
以及
“$00”
“$00”
,但都没有用


任何帮助都将不胜感激。

您需要像这里这样的两个美元符号(在IE和Chrome中测试):

请参见此处的文档:

相关部分在“指定字符串作为参数”下定义:


这就是为什么你必须禁止空格。谢谢你修复了它。
"%".replace(/%/g, "$$00") /// returns  "$00"
$$ | Inserts a "$".
$n | Where n or nn are decimal digits, inserts the nth parenthesized submatch string, provided the first argument was a RegExp object