Le 18 févr. 2013 à 00:56, Biju <bijumaill...@gmail.com> a écrit :
> On 16 February 2013 20:26, David Bruant <bruan...@gmail.com> wrote: >> Le 17/02/2013 00:58, Biju a écrit : > >> Also, it doesn't seem that hard to implement: >> String.prototype.startsWithI = function(s){ >> this.match(new RegExp('^'+s, 'i')); >> } > > you also made the common error any developer make > (I am ignoring you have missed the "return" keyword) > If people at es-discuss can make error, > how can you expect an average IT developer get it right. > > test this > > s="fddfd(ghgg" > new RegExp('^'+s, 'i') > > Error!!! > Indeed (and I am surprised that David made such an error). The following implementation is more robust: String.prototype.startsWithI = function(s) { this.toLowerCase().startsWith(s.toLowerCase()) } This approach will work for many, but not all, string functions. > >> And sometimes, case-sensitive is what you want. > i agree, that is why I mentioned to add matchCase parameter. > or have startsWithI, containsI, endsWithI instead > >>> Additionally we should have a String.replaceAll method right now web >>> developers are using complex logic to achieve the same. >> >> "aA".replace(/a/ig, 'b'); // 'bb' >> I feel the "i" and "g" flag or regexps aren't that complex. One just needs >> to know about them. > > Again you are missing the point that the first parameter of "replace" > at many times have to be a variable with a value which was taken from > user input. If there were a RegExp.escape function that escapes all characters in a string that have significance in a regular expression, you could write: str.replace(new RegExp(RegExp.escape(searchString), 'ig'), replacement) But sadly, such a function does not exist in EcmaScript, unless I missed it. Perhaps the following convenience function could be added: RegExp.escape = function(string) { return string.replace(/([(){}\[\].+*?|\\])/g, '\\$1') } (or: String.prototype.regExpEscape ?) —Claude > > > We you cant agree on replaceAll can we atleast bring mozilla > non-standard flags parameter for String.replace as standard. > https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/replace#Syntax > > You can see a lot of people asking for "replace all occurrences" > https://www.google.com/search?q=javascript+replace+all+occurrences > > cheers > Biju > _______________________________________________ > es-discuss mailing list > es-discuss@mozilla.org > https://mail.mozilla.org/listinfo/es-discuss _______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss