function myReplace(str, before, after) { return str.replace( new RegExp(`(?<=\\s|,)${escapeRegExp(before)}(?!\\w)`, 'gi'), x => (x[0] === x[0].toUpperCase() ? after[0].toUpperCase() : after[0]) + after.slice(1) // this would work too: // x => after[0][`to${x[0] === x[0].toUpperCase() ? 'Upper' : 'Lower'}Case`]() + after.slice(1) ); } // bobince's version function escapeRegExp(string) { return string.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'); } const source = `The net profit of ASP.NET is nice. It's a money-magnet platform A good safety net. Net is what spider-man makes. .NET is nice .NET is super cool The netizens are correct. .net, .NET are all the same thing Some basket,net,basketball net,toys This a good Net I would say That is a good net Net satisfaction is at all-time high Good net!`; console.log(myReplace(source, "net", "gross")); console.log(); console.log(myReplace(source, ".NET", "_DOT_NET_")); console.log(); console.log(myReplace(source, "ASP.NET", "ASP Classic"));
Output:
The gross profit of ASP.NET is nice. It's a money-magnet platform A good safety gross. Gross is what spider-man makes. .NET is nice .NET is super cool The netizens are correct. .net, .NET are all the same thing Some basket,gross,basketball gross,toys This a good Gross I would say That is a good gross Gross satisfaction is at all-time high Good gross! The net profit of ASP.NET is nice. It's a money-magnet platform A good safety net. Net is what spider-man makes. _DOT_NET_ is nice _DOT_NET_ is super cool The netizens are correct. _DOT_NET_, _DOT_NET_ are all the same thing Some basket,net,basketball net,toys This a good Net I would say That is a good net Net satisfaction is at all-time high Good net! The net profit of ASP Classic is nice. It's a money-magnet platform A good safety net. Net is what spider-man makes. .NET is nice .NET is super cool The netizens are correct. .net, .NET are all the same thing Some basket,net,basketball net,toys This a good Net I would say That is a good net Net satisfaction is at all-time high Good net!
No comments:
Post a Comment