我正在尝试使用正则表达式,特别是我要随机播放字符串的中间内容。我找到了一个符合我需求的例子Here,我正在研究的答案是Brian Nickel的答案。
这是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
为什么如果我删除它,功能不再正常工作。
我现在这是一个愚蠢的问题,但我没有在网上找到我想要的东西,或者我不知道如何正确搜索。提前致谢
答案 0 :(得分:2)
当使用RegExp替换时,该函数用作回调接收1 + n个参数,其中n
是括号内的匹配。
总是按顺序排列:
如果删除str
,参数first
将成为匹配的字符串。所以即使你不使用这个论点,你也需要它!