Skip to content

Instantly share code, notes, and snippets.

View camille-hdl's full-sized avatar

Camille Hodoul camille-hdl

View GitHub Profile
(function() {
if(!!window.history) {
var curHash = "";
var nextIndex = 0;
var setHash = function(str, title) {
curHash = str;
window.history.replaceState({}, title, '#'+str);
};
var states = ["(>°.°)>","(^°o°)^","<(°.°<)","^(°o°^)"];
@camille-hdl
camille-hdl / find_parens_sub.js
Created July 16, 2014 18:57
Get the number of capturing parentheses of a regex pattern in Javascript
/*
It isn't a full implementation : you can't use it to search named groups or anything.
It just returns the number of capturing parentheses of the pattern passed as the 1st argument.
Usage :
find_parens_sub(/(my pattern)/i.source); // 1
Idea ? comment ? insult ? camille.hodoul [at] gmail.com or @Eartz_HC
I copied this function from http://www.opensource.apple.com/source/pcre/pcre-4.2/pcre/pcre_compile.c ,
@camille-hdl
camille-hdl / throttle.js
Created May 16, 2014 14:06
Function throttle implementation in JS, with default parameters, using closures.
/* throttle(func,ms,context) returns a function that can't be called more than once every ms milliseconds.
context and ms parameters are optionnal.
*/
var throttle = (function(window){
var defaultMs=50;
return function (func,ms,context){
var to;
var wait=false;
return function(){
var args = Array.prototype.slice.call(arguments);
@camille-hdl
camille-hdl / debounce.js
Last active August 29, 2015 14:01
A debounce implementation in JS, with a default wait time. Useful when listening to window resize event for instance.
/* debounce(func,context,ms) returns a function that will be called only ms millisecond after it's latest call.
context and ms are optionnal.
*/
var debounce = (function(window){
var defaultMs=300;
return function (func,context,ms){
var to;
return function(){
var args = Array.prototype.slice.call(arguments);
if(!!to) clearTimeout(to);