String Regular Expressions with MooTools

By  on  

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!

Recent Features

  • By
    Write Better JavaScript with Promises

    You've probably heard the talk around the water cooler about how promises are the future. All of the cool kids are using them, but you don't see what makes them so special. Can't you just use a callback? What's the big deal? In this article, we'll...

  • By
    Create Namespaced Classes with MooTools

    MooTools has always gotten a bit of grief for not inherently using and standardizing namespaced-based JavaScript classes like the Dojo Toolkit does.  Many developers create their classes as globals which is generally frowned up.  I mostly disagree with that stance, but each to their own.  In any event...

Incredible Demos

  • By
    MooTools Window Object Dumping

    Ever want to see all of the information stored within the window property of your browser? Here's your chance. The XHTML We need a wrapper DIV that we'll consider a console. The CSS I like making this look like a command-line console. The MooTools JavaScript Depending on what you have loaded...

  • By
    Implement the Google AJAX Search API

    Let's be honest...WordPress' search functionality isn't great. Let's be more honest...no search functionality is better than Google's. Luckily for us, Google provides an awesome method by which we can use their search for our own site: the Google AJAX Search API.

Discussion

  1. Jeffrey

    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!

      ^_^

Wrap your code in <pre class="{language}"></pre> tags, link to a GitHub gist, JSFiddle fiddle, or CodePen pen to embed!