序文
我々置き換えるすべてのノウハウは、通常、最初に頭に浮かぶの交換処理方法を行うために使用されます。最初のパラメータが文字列または正規表現を渡すことができます置き換え、2番目のパラメータは文字列またはコールバック関数を渡すことができます。コールバック関数を渡すことができた後に、物事が(あなたがマップ、フィルタ、およびその他の機能を使用している場合、あなたはその強い、着信コールバック関数を知っているだろう)、単純な取得するために開始します。置換処理を行うことで、我々は処理の手段は、単に置き換えるのではなく、より多様であってもよいし、より多くの有用な情報を得ることができました。次は、コールバック関数が終了するには、引数を受け入れるかを確認する必要がありますか?
受信したパラメータのコールバック
コールバックは、三つのパラメータの最小値を受け取ることができ、上限なしほとんど、なぜあなたが言うのですか?見下します
公式の説明は少しであってもよい、私は(私はそれを読むことができなければならないと感じ)、それに対応するパラメータを概説しました
ノック手にはるかに良い見て、例を見て:
1 STR = 'aavbbvcc'せて 2 REG = /(B)+ /ましょうG 3 str.replace(REG、($ 0、$ 1、$ 2、$ 3)=> { 4 はconsole.log($ 0、$ 1、$ 2、$ 3 ) 5 }) 6 // BB B 3 aavbbvcc
$ 0:定期的にマッチした文字列
$ 1:一致するグループを使用して、一致するグループ値
$ 2:インデックスの値は、元の文字列にマッチします
$ 3:元の文字列
ああ、あなただけの三つのパラメータ、それの最小値を意味するものではありませんか?何が3つのパラメータをしている起こります
例を見てみましょう:
せSTR = 'aavbbvcc'
REGせ = / B + / グラム
str.replace(REG、($ 0、$ 1、$ 2、$ 3)=> {
にconsole.log($ 0、$ 1、$ 2、$ 3 )
})
// BB未定義3 aavbbvcc
私はグループのマッチングを使用していませんでした。この時間は、対応するグループのマッチの値が出てきません。
ほとんどのパラメータについては、わずか数に合わせてグループのマッチに依存
アプリケーションを置き換えます
これらのパラメータを知って、私たちは、実際のニーズに応じて使用することができ
、アスタリスクの長さに対応するように置き換えフィルタリング冒涜、冒涜:の需要は今そこにある場合、
let str = '菜鸡前端,在线炒粉,nmsl'
let reg = /(菜鸡|nmsl)/g
str.replace(reg, ($0)=>{
let char = '',
len = $0.length
i = 0
for(i; i < len; i++){
char+='*'
}
return char
})
// **前端,在线炒粉,****
当然这只是基本操作,下面要查找出一段纯字母字符串中出现最多次的字符以及该字符是哪个
可能有些小伙伴会有看过这个题目,或者在面试时会被问到,方法就是通过遍历字符串,用一个对象来记录下对应的字符和出现的次数
今天我们将又学会一个方法,那就是使用 replace。这个方法是我在掘金上看到,看完后有点意想不到的效果,还挺有意思,也是促使我去重新学习一次 replace 并写下这篇笔记的初衷。
代码:
function findMaxChar(str){
let reg = /(\w)\1+/g,
num = 0,
char = ''
str = str.split('').sort().join('')
str.replace(reg,($0,$1)=>{
if(num < $0.length){
num = $0.length
char = $1
}
})
return `出现最多的字符:${char},次数${num}`
}
仔细解读后,相信你也会和我一样感觉到有意思
写在最后
看到一些简单的东西,我们都自认为懂了,会用了。但在仔细研究后,我们可能会发现一片新大陆。在学习过程中,我们始终要对知识抱有敬畏之心,同时要想一想简单的东西怎么能变得不简单。在了解的越多之后,才会发现自己有多渺小。