Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.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
Javascript 在js中替换escape、str和hex从何而来;替换(/%(7C | 60 | 5E)/g,(str,hex)=“gt”和“替换(/[&[x27;()])/g,escape)”;_Javascript - Fatal编程技术网

Javascript 在js中替换escape、str和hex从何而来;替换(/%(7C | 60 | 5E)/g,(str,hex)=“gt”和“替换(/[&[x27;()])/g,escape)”;

Javascript 在js中替换escape、str和hex从何而来;替换(/%(7C | 60 | 5E)/g,(str,hex)=“gt”和“替换(/[&[x27;()])/g,escape)”;,javascript,Javascript,我必须为replace查找错误的replace,但我找不到其他定义有一个名为escape的回调,它似乎是本地javascript,不在我找到的replace的定义中。它还有一个名为str和hex的回调参数,这些参数与为replace callbackreplace(//g,callback(match,p1,p2,offset,string))指定的可能值不匹配此替换从何而来?如能提供解释或更好的文档链接,将不胜感激 encodeURIComponent(str).replace(/['()

我必须为replace查找错误的replace,但我找不到其他定义有一个名为
escape
的回调,它似乎是本地javascript,不在我找到的replace的定义中。它还有一个名为
str
hex
的回调参数,这些参数与为replace callback
replace(//g,callback(match,p1,p2,offset,string))指定的可能值不匹配
此替换从何而来?如能提供解释或更好的文档链接,将不胜感激

 encodeURIComponent(str).replace(/['()]/g, escape). // i.e., %27 %28 %29

 encodeURIComponent(str).replace(/%(7C|60|5E)/g, (str, hex) => String.fromCharCode(parseInt(hex, 16)));
我知道他们不是想骗我,因为我在控制台上试过

encodeURIComponent('my file(2).txt').replace(/['()]/g, escape);
> "my%20file%282%29.txt"

MDN说:
str.replace(regexp | substr,newSubstr | function)
在JavaScript中,可以调用函数而不包含所有参数。例如:函数test(a){console.log(a);}可以作为test()调用,而不引发错误。因此(str,hex)=>{}是一个只使用前两个参数的回调,在本例中为match和p1。@Programming我明白了,因此您必须提前知道将找到的匹配的确切数目。您不能使用参数的名称来指示您接受的参数。escape在哪里定义?必须是未记录的功能。事实上,我现在明白了-参数的数量将是正则表达式搜索中括号的数量。而不是全局匹配的数量。@user5389726598465就在这里:,@Derek好极了!我相对来说是新手。我得到了我的答案。如果我删除这个问题,没有任何MOD会出现并停用我的帐户?我想这只会对我有帮助,因为我的misunderstanding.MDN说:
str.replace(regexp | substr,newSubstr | function)
在JavaScript中,函数可以在不包含所有参数的情况下调用。例如:函数test(a){console.log(a);}可以作为test()调用,而不会引发错误。因此(str,hex)=>{}是一个只使用前两个参数的回调,在本例中为match和p1。@Programming我明白了,因此您必须提前知道将找到的匹配的确切数目。您不能使用参数的名称来指示您接受的参数。escape在哪里定义?必须是未记录的功能。事实上,我现在明白了-参数的数量将是正则表达式搜索中括号的数量。而不是全局匹配的数量。@user5389726598465就在这里:,@Derek好极了!我相对来说是新手。我得到了我的答案。如果我删除这个问题,没有任何MOD会出现并停用我的帐户?我想这只会对我有帮助,因为我的mis理解力