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