Skip to content

Instantly share code, notes, and snippets.

@kangax
Forked from NV/String.prototype.between.js
Created November 18, 2009 14:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save kangax/237930 to your computer and use it in GitHub Desktop.
Save kangax/237930 to your computer and use it in GitHub Desktop.
/**
* Example:
* 'hello {{username}}'.between('{{','}}') === 'username'
*/
String.prototype.between_regexp = function between(begin, end) {
var regexp = new RegExp(begin + '(.+)' + end);
return this.match(regexp)[1];
}
String.prototype.between_split = function between(head, tail) {
var chunks = this.split(head);
if (typeof chunks[1] === 'undefined') return null;
var middle = chunks[1].split(tail);
if (typeof middle[1] === 'undefined') return null
return middle[0];
}
String.prototype.between_slice = function between(begin, end) {
var left = this.substring(this.indexOf(begin) + begin.length);
return left.substring(0, left.indexOf(end));
}
console.time('between_regexp')
for (var i=0; i<10000; i++) {
'#URL\n\
ID=396\n\
NAME=JS/UIX - Terminal\n\
URL=http://masswerk.at/jsuix/\n\
UNIQUEID=8BDFD6508BD848FABB35F235B2EFD5B6'.between_regexp('NAME=', '\n')
}
console.timeEnd('between_regexp')
console.time('between_split')
for (var i=0; i<10000; i++) {
'#URL\n\
ID=396\n\
NAME=JS/UIX - Terminal\n\
URL=http://masswerk.at/jsuix/\n\
UNIQUEID=8BDFD6508BD848FABB35F235B2EFD5B6'.between_split('NAME=', '\n')
}
console.timeEnd('between_split')
console.time('between_slice');
for (var i=0; i<10000; i++) {
'#URL\n\
ID=396\n\
NAME=JS/UIX - Terminal\n\
URL=http://masswerk.at/jsuix/\n\
UNIQUEID=8BDFD6508BD848FABB35F235B2EFD5B6'.between_slice('NAME=', '\n')
}
console.timeEnd('between_slice');
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment