Friday, February 28, 2014

JavaScript Regular Expression Basics

Regular Expression is a pattern that matched a given input string. The pattern can be formed by using meta characters.

Meta characters

char meaning

^   => beginning of string
$   => end of string
.  => any character except newline
*  =>match 0 or more times
+ =>match 1 or more times
? =>match 0 or 1 times; or: shortest match
| =>alternative
( ) =>grouping; “storing”
[ ] =>set of characters
{ } =>repetition modifier

Repetition

a* =>zero or more a’s
a+ =>one or more a’s
a? =>zero or one a’s (i.e., optional a)
a{m} =>exactly m a’s
a{m,} =>at least m a’s
a{m,n} =>at least m but at most n a’s

Syntax in JavaScript
var patt=new RegExp(pattern,modifiers);
or

var patt=/pattern/modifiers;

Modifiers
1) The i modifier is used to perform case-insensitive matching.
2) The g modifier is used to perform a global match 

Pattern

  • Username [Min 8 Chars and alpha numeric characters)

    /^[a-z0-9]{8,}/i

  • Email ID

    /^[a-z0-9._-]+@[a-z]+.[a-z.]{2,5}$/i

  • Date of Birth

    /^[0-9]{1,2}-[0-9]{1,2}-[0-9]{4}$/i
  • Mobile Number

    /^([+0-9]{1,3})?([0-9]{10,11})$/i

  • Web Site URL

    /^[http://]+[www]?.[0-9a-z_.]+.[a-z.]{2,5}$/i

  • Pincode

    /^[0-9]{6}$/i 

SAMPLE CODE

<!DOCTYPE html>
<html>
    <head>
        <title>Test Script</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    </head>
    <body>
        <div>
            <form id="myform" method="post">
                Enter the Username
                <input type="text" id="uname" /> <br />
                <input type="submit" value="Validate"/>
            </form>
            <script>
 
                document.getElementById("myform").onsubmit =function()
                {
                 var pattern = /^[a-z0-9_]{8,25}$/i;
                 var text = document.getElementById("uname");
                 if(!pattern.test(text.value))
                   {
                     alert("Enter a valid Username");
                     text.focus();
                    }
                  else
                   {
                     alert("Thank You");
                   }
                };  
            </script>
        </div>
    </body>
</html>



With Regards,
Animesh Nanda
Sr.Software Engineer | Photon Infotech
Bengaluru | Karnataka | INDIA.

No comments:

Post a Comment