JavaScript Regular Expression Filter
JavaScript
Download (.zip)
<?xml version="1.0"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head>
<script type="text/Javascript"> //<![CDATA[
if (/Mozilla\/5\.0/.test(navigator.userAgent)) document.write('<script type="text/javascript" src="../../dhtml/mozInnerHTML/mozInnerHTML.js"></sc' + 'ript>');
/* Global variable */
var a = new Array(4) var v_foundarray = new Array(4)
function filldata() {
/* Initialize variables */
var j = 0 var strHTML = " "
var v_filterops = new Array() var myVar = "<table border='1'>"
/* Initialize two dimension array */
for (var i=0; i < 4; i++) { a[i] = new Array(4) v_foundarray[i] = new Array(4) }
/* Heading */
v_foundarray[0][0] = "Row" v_foundarray[0][1] = "String" v_foundarray[0][2] = "Number" v_foundarray[0][3] = "Date"
a[0][0] = "Row" a[0][1] = "String" a[0][2] = "Number" a[0][3] = "Date"
/* Row 1 Data */
a[1][0] = "1" a[1][1] = "Satyan" a[1][2] = "1234" a[1][3] = "3/4/99"
/* Row 2 Data */
a[2][0] = "2" a[2][1] = "Manish" a[2][2] = "9012" a[2][3] = "5/6/99"
/* Row 3 Data */
a[3][0] = "3" a[3][1] = "Filter" a[3][2] = "4556" a[3][3] = "8/7/99"
for (var i=0; i < 4; i++) { var str = "<tr>" for (var j=0; j < 4; j++) { if (i == 0 ) v_filterops[j] = new Option(a[i][j],j) str += "<td>" + a[i][j] + "</td>" } myVar += str + "</tr>" }
document.getElementById("vals").innerHTML = myVar + "</table>"; for ( var i=0; i<v_filterops.length;i++) document.getElementById("field").options[i] = new Option(v_filterops[i].text,v_filterops[i].value); }
function filter() { var el = document.getElementById("inpREGEXP").value var v_heading = document.getElementById("field").value var myVar = "<table border='1'>" var found_cntr = 0 var v_regexp = new RegExp(el,"gi")
switch (v_heading) { case "0": /* ROWID */ var j=1 for (var i=1;i<4;i++) { if ( v_regexp.test(a[i][0]) ) { v_foundarray[j] = a[i] j++ found_cntr++ } } break; case "1": /* STRING */ var j=1 for (var i=1;i<4;i++) { if ( v_regexp.test(a[i][1]) ) { v_foundarray[j] = a[i] j++ found_cntr++ } } break; case "2": /* NUMBER */ var j=1 for (var i=1;i<4;i++) { if ( v_regexp.test(a[i][2]) ) { v_foundarray[j] = a[i] j++ found_cntr++ } } break; case "3": /* DATE */ var j=1 for (var i=1;i<4;i++) { if ( v_regexp.test(a[i][3]) ) { v_foundarray[j] = a[i] j++ found_cntr++ } } break; } for (var i=0; i <= found_cntr; i++) { var str = "<tr>" for (var j=0; j < 4; j++) { str += "<td>" + v_foundarray[i][j] + "</td>" } myVar += str + "</tr>" }
document.getElementById("vals").innerHTML = myVar + "</table>" }
//]]> </script>
</head>
<body onload="filldata()"> FILTER ON : <select name='field'></select> REGULAR EXPRESSION: <input name="inpREGEXP" type="TEXT" /> <input type="BUTTON" value="Filter" onclick="filter()" /> <hr /><br /> <div id="vals"></div> </body>
</html>
|