<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'><div class="markdown-here-wrapper" data-md-url="https://blu184.mail.live.com/?page=Compose&cmid=mgs_6iZWMX5BGsdwAjfeP1cA2&cacc=2" style=""><p style="margin: 1.2em 0px !important;">Would be nice to use something similar that mozilla now does: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace">replace(string, mix, ?flags)</a>, but so that <code style="font-size: 0.85em; font-family: Consolas, Inconsolata, Courier, monospace;margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap; border: 1px solid rgb(234, 234, 234); border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; display: inline; background-color: rgb(248, 248, 248);">flags</code> are also applied for strings. It wont break nothing as when <code style="font-size: 0.85em; font-family: Consolas, Inconsolata, Courier, monospace;margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap; border: 1px solid rgb(234, 234, 234); border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; display: inline; background-color: rgb(248, 248, 248);">(string, string)</code> is used, then usual behaviour is applied, but with flags the behaviour is extendible, it would be possible then:</p>
<pre style="font-size: 0.85em; font-family: Consolas, Inconsolata, Courier, monospace;font-size: 1em; line-height: 1.2em;margin: 1.2em 0px;"><code class="language-javascript" style="font-size: 0.85em; font-family: Consolas, Inconsolata, Courier, monospace;margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap; border: 1px solid rgb(234, 234, 234); border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; display: inline; background-color: rgb(248, 248, 248);white-space: pre; overflow: auto; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; border: 1px solid rgb(204, 204, 204); padding: 0.5em 0.7em; display: block !important;display: block; padding: 0.5em; color: rgb(51, 51, 51); background: rgb(248, 248, 255);"><span class="comment" style="color: rgb(153, 153, 136); font-style: italic;">// replace global</span>
<span class="string" style="color: rgb(221, 17, 68);">'foo x foo'</span>.replace(<span class="string" style="color: rgb(221, 17, 68);">'foo'</span>, <span class="string" style="color: rgb(221, 17, 68);">'baz'</span>, <span class="string" style="color: rgb(221, 17, 68);">'g'</span>) <span class="comment" style="color: rgb(153, 153, 136); font-style: italic;">//> 'baz x baz'</span>

<span class="comment" style="color: rgb(153, 153, 136); font-style: italic;">// global and case insensitive</span>
<span class="string" style="color: rgb(221, 17, 68);">'Foo x foo'</span>.replace(<span class="string" style="color: rgb(221, 17, 68);">'foo'</span>, <span class="string" style="color: rgb(221, 17, 68);">'baz'</span>, <span class="string" style="color: rgb(221, 17, 68);">'gi'</span>) <span class="comment" style="color: rgb(153, 153, 136); font-style: italic;">//> 'baz x baz'</span>

<span class="comment" style="color: rgb(153, 153, 136); font-style: italic;">// and now the subject, e.g. `r`(raw) flag</span>
<span class="string" style="color: rgb(221, 17, 68);">'foo bar`'</span>.replace(<span class="string" style="color: rgb(221, 17, 68);">'foo'</span>, <span class="string" style="color: rgb(221, 17, 68);">'$`'</span>, <span class="string" style="color: rgb(221, 17, 68);">'rg'</span>) <span class="comment" style="color: rgb(153, 153, 136); font-style: italic;">//> '$` bar`'</span>
</code></pre>
<div title="MDH:V291bGQgYmUgbmljZSB0byB1c2Ugc29tZXRoaW5nIHNpbWlsYXIgdGhhdCBtb3ppbGxhIG5vdyBk
b2VzOiBbcmVwbGFjZShzdHJpbmcsIG1peCwgP2ZsYWdzKV0oPGEgaHJlZj0iaHR0cHM6Ly9kZXZl
bG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xv
YmFsX09iamVjdHMvU3RyaW5nL3JlcGxhY2UiIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0iIj5odHRw
czovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVy
ZW5jZS9HbG9iYWxfT2JqZWN0cy9TdHJpbmcvcmVwbGFjZTwvYT4pLCBidXQgc28gdGhhdCBgZmxh
Z3NgIGFyZSBhbHNvIGFwcGxpZWQgZm9yIHN0cmluZ3MuIEl0IHdvbnQgYnJlYWsgbm90aGluZyBh
cyB3aGVuIGAoc3RyaW5nLCBzdHJpbmcpYCBpcyB1c2VkLCB0aGVuIHVzdWFsIGJlaGF2aW91ciBp
cyBhcHBsaWVkLCBidXQgd2l0aCBmbGFncyB0aGUgYmVoYXZpb3VyIGlzIGV4dGVuZGlibGUsIGl0
IHdvdWxkIGJlIHBvc3NpYmxlIHRoZW46PGRpdj5gYGBqYXZhc2NyaXB0PC9kaXY+PGRpdj4vLyBy
ZXBsYWNlIGdsb2JhbDwvZGl2PjxkaXY+J2ZvbyB4IGZvbycucmVwbGFjZSgnZm9vJywgJ2Jheics
ICdnJykgLy8mZ3Q7ICdiYXogeCBiYXonPC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj4vLyBnbG9i
YWwgYW5kIGNhc2UgaW5zZW5zaXRpdmU8L2Rpdj48ZGl2PidGb28geCBmb28nLnJlcGxhY2UoJ2Zv
bycsICdiYXonLCAnZ2knKSAvLyZndDsgJ2JheiB4IGJheic8L2Rpdj48ZGl2Pjxicj48L2Rpdj48
ZGl2Pi8vIGFuZCBub3cgdGhlIHN1YmplY3QsIGUuZy4gYHJgKHJhdykgZmxhZzwvZGl2PjxkaXY+
J2ZvbyBiYXJgJy5yZXBsYWNlKCdmb28nLCAnJGAnLCAncmcnKSAvLyZndDsgJyRgIGJhcmAnPC9k
aXY+PGRpdj5gYGA8YnI+PGJyPjwvZGl2Pg==" style="height:0;font-size:0em;padding:0;margin:0;">​</div></div><div><br><br><div><hr id="stopSpelling">From: f.bagnardi@gmail.com<br>Date: Tue, 29 Jul 2014 14:00:22 -0700<br>Subject: Re: String.prototype.replace() problems with JSON.stringify() and     serialization of Objects<br>To: waldron.rick@gmail.com<br>CC: es-discuss@mozilla.org<br><br><div dir="ltr">Of course it's a hack :-)<div><br></div><div>So, moving forward, it'd have to be an extra method on strings, that only provides a small change in behavior.  It's probably not going to happen because it's such a small change.  </div>

<div><br></div><div>Potentially a S.p.replaceAll which has the same behavior as split-join in that: "a b a c a d".replaceAll("a", "X") => "X b X c X d".</div><div><br></div><div>

But then you end up with similar concerns to those expressed in the current .contains thread (it's inconsistent).</div><div><br></div><div><br></div></div><div class="ecxgmail_extra"><br><br><div class="ecxgmail_quote">On Tue, Jul 29, 2014 at 1:32 PM, Rick Waldron <span dir="ltr"><<a href="mailto:waldron.rick@gmail.com" target="_blank">waldron.rick@gmail.com</a>></span> wrote:<br>

<blockquote class="ecxgmail_quote" style="border-left:1px #ccc solid;padding-left:1ex;"><div dir="ltr"><br><div class="ecxgmail_extra"><br><br><div class="ecxgmail_quote"><div>On Mon, Jul 28, 2014 at 10:29 PM, Christoph Martens <span dir="ltr"><<a href="mailto:cmartensms@gmail.com" target="_blank">cmartensms@gmail.com</a>></span> wrote:<br>



</div><div><blockquote class="ecxgmail_quote" style="border-left:1px #ccc solid;padding-left:1ex;">
  
    
  
  <div><div><div>
    <div>On 28.07.2014 17:24, Rick Waldron
      wrote:<br>
    </div>
    </div></div><blockquote><div><div>
      <div dir="ltr"><br>
        <div class="ecxgmail_extra"><br>
          <br>
          <div class="ecxgmail_quote">On Mon, Jul 28, 2014 at 11:16 AM,
            Boris Zbarsky <span dir="ltr"><<a href="mailto:bzbarsky@mit.edu" target="_blank">bzbarsky@mit.edu</a>></span>
            wrote:<br>
            <blockquote class="ecxgmail_quote" style="border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex;">
              <div>On 7/28/14, 11:09 AM, Rick Waldron wrote:<br>
                <blockquote class="ecxgmail_quote" style="border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex;"> 
                   var y = x.replace('{{blob}}', function() {<br>
                       return data;<br>
                     });<br>
                </blockquote>
                <br>
              </div>
              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...</blockquote>
            <div><br>
            </div>
            <div>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 ;)</div>
            <div><br>
            </div>
            <div>Rick<br>
            </div>
          </div>
        </div>
      </div>
      <br>
      <fieldset></fieldset>
      <br>
      </div></div><div><pre>_______________________________________________
es-discuss mailing list
<a href="mailto:es-discuss@mozilla.org" target="_blank">es-discuss@mozilla.org</a>
<a href="https://mail.mozilla.org/listinfo/es-discuss" target="_blank">https://mail.mozilla.org/listinfo/es-discuss</a>
</pre>
    </div></blockquote>
    <br>
    Hey Rick,<br>
    <br>
    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).<br>
    <br>
    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)</div></blockquote><div><br></div></div><div>The progress of JS is limited only to non-web-breaking changes. </div><span class="ecxHOEnZb"><font color="#888888"><div><br></div><div>

<br></div><div>Rick</div><div> </div></font></span></div></div>

</div>
<br>_______________________________________________<br>
es-discuss mailing list<br>
<a href="mailto:es-discuss@mozilla.org">es-discuss@mozilla.org</a><br>
<a href="https://mail.mozilla.org/listinfo/es-discuss" target="_blank">https://mail.mozilla.org/listinfo/es-discuss</a><br>
<br></blockquote></div><br></div>
<br>_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss</div></div>                                      </div></body>
</html>