Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.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 为什么可以';我不能将函数直接传递到replace方法中吗?_Javascript_Regex_Str Replace - Fatal编程技术网

Javascript 为什么可以';我不能将函数直接传递到replace方法中吗?

Javascript 为什么可以';我不能将函数直接传递到replace方法中吗?,javascript,regex,str-replace,Javascript,Regex,Str Replace,我简直无法理解为什么第二行和第三行输出彼此不同: alphabet_ASCII=”; 对于(i=65;iString.fromCharCode(x)); document.body.innerHTML+= 字母表ASCII.replace(/\d{2}/g,String.fromCharCode)因为String.fromCharCode接受多个参数,并且replace使用您期望的多个参数调用回调:它使用以下参数调用回调: 所有匹配文本 任何捕获组的内容(如果有) 发生此匹配的索引(偏移量)

我简直无法理解为什么第二行和第三行输出彼此不同:

alphabet_ASCII=”;
对于(i=65;iString.fromCharCode(x));
document.body.innerHTML+=

字母表ASCII.replace(/\d{2}/g,String.fromCharCode)
因为
String.fromCharCode
接受多个参数,并且
replace
使用您期望的多个参数调用回调:它使用以下参数调用回调:

  • 所有匹配文本
  • 任何捕获组的内容(如果有)
  • 发生此匹配的索引(偏移量)
  • 整根绳子都在起作用


因此,在第二个示例中,
String.fromCharCode
比第一个示例中获得更多的参数,并且对它们做得最好。在第一次回调中,
String.fromCharCode
获取
“65”,0,“6566676869707172737475767778798081828384858687888990”
,因此返回
“A\u0000\u0000”
(因为第二个参数为0,第三个参数无效)。第二次通过时,它得到
“66”,2,“6566676869707172737475767778798081828384858687888990”
,并返回
“B\u0002\u0000”
,等等。

我不知道第三个和第四个参数。。很高兴知道,我会接受的时候possible@WashingtonGuedes:说实话,我也没有,但当我看到这个问题时,我想“我打赌这和你不能用
forEach
…”做这件事的原因是一样的,然后查了一下。:-)只是想告诉你我的问题在哪里