0

Hi,

I need to search for strings and retrieve it and display. Using Regular Expression i tried but my need is that :

For example if i need to search for country names when the use enters only first 2 or 3 letters it should return back the names starting with that 3.

Let it be Austria,Australia.

As of now i used ^$ to handle multiple lines in a string. But only when a use enters Austria it retrieves it.

I need like when a user enters Aus or aus it should return back Australia and Austria.

Whether it is possible using REgular Expressions in Javascript?

2
Contributors
1
Reply
2
Views
8 Years
Discussion Span
Last Post by essential
0

Hi av1,

Here's how you can do it, using RegExp .
Try to input a single word in "bu", bug, or any specific word containing (bu) and it will search all the string's inside the div and output the closest match.

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<title>Search String Using Regular Expression</title>
<style type="text/css">
/* <![CDATA[ */
ol, div#show {
   font : bold 80%/1.6 "Trebuchet MS", "Bernard MT Condensed", Tahoma, Verdana;
   color : #708090;
   margin : 1em 0 1em 1.500em;
}
   
/* ]]> */
</style>
<script type="text/javascript">
// <![CDATA[
var myString, str, get, stringMatch, searchText;
var i, x;
String.prototype.get = function(PATTERN) {
   str = new RegExp();
   str.compile( PATTERN + "(\\s|\\w+)", "ig");
   return this.match( str );
};
searchText = function() {
   div = (( document.getElementById ) ? document.getElementById("show") : document.all.show );
   myString = (( document.getElementById ) ? document.getElementById("text").innerText : document.all.text.innerText );
   myQuery = myString.get(( document.getElementById ) ? (( document.getElementById("txt").value === "" ) ? alert("This field cannot be empty") : document.getElementById("txt").value ) : (( document.all.txt.value === "" ) ? alert("This field cannot be empty") : document.all.txt.value ));
   if ( myQuery !== null ) {
      try {
      div.innerHTML = "";
      ol = document.createElement("ol");
         for ( i = 0; i < myQuery.length; i++ ) { 
         li = document.createElement("li");
         stringMatch = document.createTextNode( myQuery[ i ] );
      li.appendChild( stringMatch );
      ol.appendChild( li );
      }
      div.appendChild( ol );
      } catch( e ) {
         for ( x = 0; x < myQuery.length; x++ ) {
      div.innerHTML += ( x + 1 )  + ". " + myQuery[ x ] + "<br />\n";
         }
      }
   } return false;         
};
// ]]>
</script>
</head>
<body>
<div id="text">Please help me to identify ( buzz jazz bull bullets buns bug ) the words with an instance of "bu"!</div>
<div id="show"></div>

<p><label for="txt">Enter some string: <input type="text" id="txt" name="txt" value="" /></label><button id="btn" name="btn" onclick="searchText();">Search Text</button></p>
</body>
</html>

hope it get's what you need...

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.