RegEx parsing of LINQ lambdas

Tested in Chrome v21 and Chrome Canary v23, IE9

by alano

HTML

<p><input type="button" value="Run" onclick="DoIt()"/></p>
<ul id="results"/>
<p id="count"/>

JavaScript

function DoIt() {
    var results = document.getElementById("results");
    var count = document.getElementById("count");
    var lambdaRegEx = /(?:^|,)[(\s]*([^()]+?)[)\s]*=>\s*(.+?)(?=$|,)/;
    var inputString = "set1 => set1.id, set2 => set2.id, (set1, set2) => set1.id * set2.id";
    var matches = inputString.split(lambdaRegEx);
    var parts = (matches.length > 0) ? (matches.length - 1) / 3 : 0;
    var txtCount = document.createTextNode("Clause Parts: " + parts);
    count.appendChild(txtCount);
    for (var i = 2; i < matches.length; i += 3) {
        var result = document.createElement("li");
        var txtResult = document.createTextNode("'" + matches[i] + "'");
        result.appendChild(txtResult);
        results.appendChild(result);
    }
}