JavaScript Regular Expression Filter

Regular Expression Filter

<?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>&nbsp;REGULAR EXPRESSION:
	<input name="inpREGEXP" type="TEXT" />
	<input type="BUTTON" value="Filter" onclick="filter()" />
	<hr /><br />
	<div id="vals"></div>
</body>

</html>