Regex Selector

Trying out this awesome regex selector made by some intelligent dude http://james.padolsey.com/javascript/regex-selector-for-jquery/

by Egli

HTML

<script src="https://code.jquery.com/jquery-1.11.3.min.js"></script>
All the links on the page are...
<br /><br />
<a id="target-1" href="/Pages/Egli.aspx">Yes</a>
<a id="target-4" href="/Pages/Reyes.aspx">Yes</a>
<a id="non-target-1" href="http://www.eglibecerra.com/Pages/Egli.aspx">No</a>
<a id="non-target-2" href="http://www.eglibecerra.com/Pages/Omar.aspx">No</a>
<a id="target-2" href="/Pages/Omar.aspx">Yes</a>
<a id="target-3" href="/Pages/Becerra.aspx">Yes</a>
<a id="non-target-3" href="http://www.eglibecerra.com/Pages/Becerra.aspx">No</a>
<a id="non-target-4" href="http://www.eglibecerra.com/Pages/Reyes.aspx">No</a>
<br />
The links im interested in are:
<br /><br />

CSS

html{font-family:arial; color:#000; font-size:12px;}
a{text-decoration:none; color:#000;}
#target-1,#target-2,#target-3,#target-4{
    display:block;
    background-color:green;
}

#non-target-1,#non-target-2,#non-target-3,#non-target-4{
    display:block;
    background-color:red;
}

JavaScript

//The awesome regex selector
jQuery.expr[':'].regex = function(elem, index, match) {
    var matchParams = match[3].split(','),
        validLabels = /^(data|css):/,
        attr = {
            method: matchParams[0].match(validLabels) ? 
                        matchParams[0].split(':')[0] : 'attr',
            property: matchParams.shift().replace(validLabels,'')
        },
        regexFlags = 'ig',
        regex = new RegExp(matchParams.join('').replace(/^s+|s+$/g,''), regexFlags);
    return regex.test(jQuery(elem)[attr.method](attr.property));
}

//Dom ready
$(function(){
	SelectRelativeLinks();
    
});

function SelectRelativeLinks(){
	// Select all links that start with /Pages/:
    $('a:regex(href,^[//Pages//])').each(function(){
        $(this).html("Yes I'm the one!");
        var oldLink = $(this).attr('href');
        var baseURL = GetCorrectedBaseUrl();
        $(this).attr('href',baseURL+oldLink);
    });
}

function GetCorrectedBaseUrl(){
	//TODO:
    var baseURL = (window.location.protocol + "//" + window.location.host + "/").toLowerCase();
    
    //Check if I'm on dev environment
    if(baseURL.indexOf("dev") > -1){
    	//Im in dev environment so return dev public url
        return "http://gyprockdev.csr.com.au";
    }else if(baseURL.indexOf("stage") > -1){
    	//Im in stage environment so return stage public url
        return "http://gyprockstage.csr.com.au";
    }else{
        //Im in live environment so return live public url
        return "http://www.gyprock.com.au";
    }
}