Yes, I see the use for returning the entire string if the needle isn't found. I was also thinking about a dynamic start position, which is why I'd favor something like this.
String.prototype.until = function (needle, start) { start ?? 0; return this.substr(start, this.indexOf(needle)) || this } It seems weird to call something like str.until("bc", 2), but the other option would be to check if arguments[0] is a number, and if so to set start = arguments[0] and needle arguments[1]. On Mon, Jan 2, 2012 at 11:48, Michael A. Smith <mich...@smith-li.com> wrote: > Semantically, calling it "until" makes me think that if the "needle" > isn't found, it should return the entire haystack. Your example > implementation would return an empty string in that case. Also, to > keep consistency with other string methods like substr, shouldn't we > allow the developer to decide the starting index? > > String.prototype.until = function (start, needle) { > return "" + (this.substr(start, this.indexOf(needle)) || this); > } > > (The ["" +] part is probably not necessary, but it makes it easier to > see the implementation work in the console.) > > Michael A. Smith > Web Developer > True Action Network (an eBay Company) > > On Mon, Jan 2, 2012 at 12:03 PM, Adam Shannon <a...@ashannon.us> wrote: >> Hello all, >> >> I recently ran into a situation where I would like to obtain a >> substring from the beginning until the first encounter with another >> substring. This promoted me to write a simple function, called until >> and I wondered if it would be something to add with the other string >> extras for ES.next. >> >> It could be defined as acting the same way as the following code: >> >> String.prototype.until = function (needle) { >> return this.substr(0, this.indexOf(needle)); >> } >> >> -- >> Adam Shannon >> Web Developer >> University of Northern Iowa >> Sophomore -- Computer Science B.S. & Mathematics >> http://ashannon.us >> _______________________________________________ >> es-discuss mailing list >> es-discuss@mozilla.org >> https://mail.mozilla.org/listinfo/es-discuss >> -- Adam Shannon Web Developer University of Northern Iowa Sophomore -- Computer Science B.S. & Mathematics http://ashannon.us _______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss