Emmmmm, pretty sorry for misleading you…

Your solution will not work if I just provide you a regex without telling you 
detail information, all I want is replace first and second word matched by the 
regex, nothing more.


> 在 2018年9月7日,下午10:57,Peter Jaszkowiak <[email protected]> 写道:
> 
> ```
> input.replace(
>   /your (\w+) from (\w+)/, 
>   (w, a, b) => `your ${a.toUpperCase()} from ${b.toLowerCase()}`
> );
> ```
> 
> On Fri, Sep 7, 2018, 08:49 sion <[email protected] 
> <mailto:[email protected]>> wrote:
> This is just a very simple example, of cause you could write it like that.
> 
> 
> Maybe my second example is unsuitable, how about this one:
> 
> input.replace(/your \w+ from \w+/, a => a.toUpperCase(), b => 
> b.toLowerCase());
> 
> INPUT: your friend from USA  OUTPUT: your FRIEND from usa
> 
> Actually, I am not very familiar with regex, I wonder if there is any 
> performance issue if we support this kind of feature.
> 
> 
> 
>> 在 2018年9月7日,下午10:13,Peter Jaszkowiak <[email protected] 
>> <mailto:[email protected]>> 写道:
>> 
>> You do know that all capture groups are passed to the function, right? You 
>> can write your second example like this, even though the capture groups are 
>> totally useless:
>> 
>> ```
>> input.replace(
>>   /your (\w+) from (\w+)/g, 
>>   (whole, a, b) => 'your book from amazon'
>> );
>> ```
>> 
>> On Fri, Sep 7, 2018, 07:23 sion <[email protected] 
>> <mailto:[email protected]>> wrote:
>> 
>> Is it possible to enhance the string.prototype.replace(regex, func) ?
>> 
>> By now, we can do something like this:
>> 
>> input.replace(/(^|_)[a-z]/g, a => a[a.length - 1].toUpperCase());
>> INPUT: ab_cd_ef     OUTPUT: abCdEf
>> 
>> 
>> However, i want something more powerfull, like this:
>> 
>> input.replace(/your (\w+) from (\w+)/g, a => 'book', b => 'amazon’);
>> INPUT: your friend from china OUTPUT: your book from amazon
>> 
>> As you can see, I just want the replace could replace multi fragments at the 
>> same time. And I don’t think there is any conflicts with other principles of 
>> string.prototype.replace.
>> 
>> _______________________________________________
>> es-discuss mailing list
>> [email protected] <mailto:[email protected]>
>> https://mail.mozilla.org/listinfo/es-discuss 
>> <https://mail.mozilla.org/listinfo/es-discuss>
> 

_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to