繁体   English   中英

JavaScript - 了解变量在作为参数传递的函数中的作用

[英]JavaScript - Understanding the role of a variable in a function passed as an argument

我正在尝试使用正则表达式 ,特别是我要改变字符串的中间内容 我发现适合我的需求的例子在这里 ,我学习的答案是一个由Brian镍。

这是Brian Nickel在问题中提出的代码:

myStr.replace(/\b([a-z])([a-z]+)([a-z])\b/ig, function(str, first, middle, last) {
return first +
       middle.split('').sort(function(){return Math.random()-0.5}).join('') + 
       last;
});

我是JavaScript和RegEx的初学者,我在这里看到一个函数作为参数传递,但我不明白为什么有四个参数,特别是我不理解第一个参数str以及为什么如果我删除它,功能不再正常工作。

我现在这是一个愚蠢的问题,但我没有在网上找到我想要的东西,或者我不知道如何正确搜索。 提前致谢

当使用RegExp替换时,该函数用作回调接收1 + n个参数,其中n是括号内的匹配。

始终按顺序排列:

  1. 完整匹配的字符串。
  2. 第一个括号。
  3. 第二个括号。
  4. 继续...

如果删除str ,则参数first成为匹配的字符串。 所以即使你不使用这个论点,你也需要它!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM