String.prototype.replace() problems with JSON.stringify() and serialization of Objects

Frankie Bagnardi f.bagnardi at gmail.com
Tue Jul 29 09:49:44 PDT 2014


You can also do a split-join to get a literal replace.

>> "I'll sell this for {cost}.".split("{cost}").join("$5.00");
"I'll sell this for $5.00."



On Tue, Jul 29, 2014 at 9:36 AM, Andrea Giammarchi <
andrea.giammarchi at gmail.com> wrote:

> '0101'.replace('0', function(){return 1}) == '1101'
>
> so your last two are the same:
>
> replace(string, callback) -> called one time, using the first indexOf and
> replacing it invoking the callback
> replace(string, string) -> called one time, using the first indexOf and
> replacing it via provided string and checking $
>
>
>
> On Mon, Jul 28, 2014 at 10:29 PM, Christoph Martens <cmartensms at gmail.com>
> wrote:
>
>>  On 28.07.2014 17:24, Rick Waldron wrote:
>>
>>
>>
>>
>> On Mon, Jul 28, 2014 at 11:16 AM, Boris Zbarsky <bzbarsky at mit.edu> wrote:
>>
>>> On 7/28/14, 11:09 AM, Rick Waldron wrote:
>>>
>>>>    var y = x.replace('{{blob}}', function() {
>>>>      return data;
>>>>    });
>>>>
>>>
>>>  In fairness, that's the sort of thing that gives off a "WAT smell".
>>> Code like this without a comment that explains the indirection is just
>>> asking someone to "simplify" it, breaking it in the process...
>>
>>
>>  I don't disagree with your feedback, but JS has had special semantics
>> for "$" (with ’ or n) character in the replaceValue since ES3 (just short
>> of 15 years). I didn't say that the solution was obvious, just that it
>> required familiarity ;)
>>
>>  Rick
>>
>>
>> _______________________________________________
>> es-discuss mailing listes-discuss at mozilla.orghttps://mail.mozilla.org/listinfo/es-discuss
>>
>>
>> Hey Rick,
>>
>> To be honest, I didn't know the trick with the dummy filter function
>> returning the plain data. I expected that it was executed each time a match
>> was found (similar to Array filter functions).
>>
>> I think for external guys writing JavaScript, the WAT effect is pretty
>> huge. Either we should change the behaviour of the parameters (which is bad
>> for legacy implementations) or the flags to disable it optionally.
>>
>> As I wasn't familiar with the replace behaviour before, I would expect
>> the method to behave differently, depending on the arguments:
>>
>>
>> replace(regexp, string) -> parse string and see if $ is in there
>> replace(regexp, callback) -> callback is called each time regexp is
>> matched
>> replace(string, callback) -> only called once
>> replace(string, string) -> called one time, using the first indexOf and
>> replacing it
>>
>>
>> ~Chris
>>
>>
>> _______________________________________________
>> es-discuss mailing list
>> es-discuss at mozilla.org
>> https://mail.mozilla.org/listinfo/es-discuss
>>
>>
>
> _______________________________________________
> es-discuss mailing list
> es-discuss at mozilla.org
> https://mail.mozilla.org/listinfo/es-discuss
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20140729/4d9bfac5/attachment.html>


More information about the es-discuss mailing list