// @extend
// <code>
// var obj_1 = {foo:1,bar:{baz:2}};
// var obj_2 = {foo:'test',bar:{qux:'test'}};
// console.log(extend(obj_1, obj_2)); → `{foo:'test',bar:{baz:2,qux:'test'}}`
// </code>
function extend(def, alt) {
alt = alt || {};
for (var i in def) {
if (typeof alt[i] === "undefined") {
alt[i] = def[i];
} else if (
typeof def[i] === "object" &&
typeof alt[i] === "object" &&
alt[i] !== null
) {
alt[i] = extend(def[i], alt[i]);
}
}
return alt;
}
// @edge
// Prevent `x` exceeds the value of `min` and `max`
function edge(x, min, max) {
if (x < min) return min;
if (x > max) return max;
return x;
}
// @css
// Get CSS value
// <code>
// console.log(css(document.body, 'font-family')); → `serif`
// </code>
function css(elem, rule) {
var ruleJS = rule.replace(/\-(\w)/g, function(match, $1) {
return $1.toUpperCase();
}), value = 0;
if (document.defaultView && document.defaultView.getComputedStyle) {
value = document.defaultView.getComputedStyle(elem, null).getPropertyValue(rule);
} else {
value = elem.style[ruleJS];
}
return value;
}
// @array_min
// Find min value in array
// <code>
// console.log(array_min([1,4,58,-4,5,9,87,2,0,-2,.5])); → `-4`
// </code>
function array_min(arr) {
return Math.min.apply({}, arr);
}
// @array_max
// Find max value in array
// <code>
// console.log(array_max([1,4,58,-4,5,9,87,2,0,-2,.5])); → `87`
// </code>
function array_max(arr) {
return Math.max.apply({}, arr);
}
// type check
function is_set(x) {
return typeof x !== "undefined";
}
function is_object(x) {
return typeof x === "object";
}
function is_array(x) {
return x instanceof Array;
}
function is_string(x) {
return typeof x === "string";
}
function is_number(x) {
return typeof x === "number";
}
function is_function(x) {
return typeof x === "function";
}
function is_element(x) {
return x instanceof HTMLElement;
}
function is_regex(x) {
return x instanceof RegExp;
}
// capitalize text
function caputalize(text) {
return text.toLowerCase().replace(/(^|\W)([a-z])/g, function(a, b, c) {
return b + c.toUpperCase();
});
}
// camel case
function camelize(s) {
return s.replace(/\-([a-z])/g, function(a, b) {
return b.toUpperCase();
});
}
// slug case
function dasherize(s) {
return s.replace(/([A-Z])/g, function(a, b) {
return '-' + b.toLowerCase();
});
}
// strip tags
function strip_tags(text) {
return text.replace(/<.*?>/g, "");
}
Some of them come from PHP, and they are very handy.
4 Responses
Example: Spanish name: "marco ñuñez", results into "Marco ñUñez".
Write a comment
You can use [html][/html], [css][/css], [php][/php] and more to embed the code. Urls are automatically hyperlinked. Line breaks and paragraphs are automatically generated.