String Regular Expressions with MooTools
Whether you like given JavaScript library or not , there are always snippets you can take from the code which accomplish a task you may need to address. We all know that I looooooove MooTools, but maybe you're a Dojo or jQuery developer that doesn't get a good look at Moo. The following are a choice selection of regular expression used with MooTools -- maybe you have use for them?
Clean Whitespace
var newString = myString.replace(/^\s+|\s+$/g, '');
Camel-Case a Dash-Separated String
var newString = myString.replace(/-\D/g, function(match){ return match.charAt(1).toUpperCase(); });
Dash-Separate a Camel-Cased String
var newString = myString.replace(/[A-Z]/g, function(match){ return ('-' + match.charAt(0).toLowerCase()); });
Escape a Regular Expression
var newString = myString.replace(/([-.*+?^${}()|[\]\/\\])/g, '\\$1');
Hex to RGB, RGB to Hex
var hex = myString.match(/^#?(\w{1,2})(\w{1,2})(\w{1,2})$/); var newString = (hex) ? hex.slice(1).hexToRgb(array) : null;
Term Substitution
var newString = this.replace(regexp || (/\\?\{([^{}]+)\}/g), function(match, name){ if (match.charAt(0) == '\\') return match.slice(1); return (object[name] != undefined) ? object[name] : ''; });
Strip Scripts from a String
var newString = myString.replace(/<script[^>]*>([\s\S]*?)<\/script>/gi, function(all, code){ scripts += code + '\n'; return ''; });
Above are just a sampling of regular expression used by MooTools to accomplish tasks. Most, in fact, are applied as methods to the String native so they are available with *ANY* string!
Technologies will come and go – one library will find favor over the one you are currently using, one scripting language will arise that will make the one you are using look foolish, etc. But regular expressions are one of those things that will be a useful thing to know even on the tumultuous seas of techno-change.
Good little article – make it a series. A cache of tested regular expressions to crib from is a useful thing to have.
Hear, hear!
Perl was the first programming language I ever learned, so Regular Expressions have always been a primary tool I’ve used no matter the language. I just don’t know what I’d do without them!
^_^