Understanding Regular Expression
Wall Script
Follow Me:
Monday, October 21, 2013

Understanding Regular Expression

Regular expression is the most important part in form validations and it is widely used for search, replace and web crawling systems. If you want to write a selector engine (used to find elements in a DOM), it should be possible with Regular Expressions. In this post we explained few tips that how to understand and write the Regular Expression in simple way.

10 Reasons To Get A .BLOG Name Now


Author
Arun Kumar Sekar
Arun Kumar Sekar

Engineer, Plugin Expert
Chennai, INDIA

Will discuss about basic regular expression in three stages.

Stage 1
Symbol             Explanation

^                       Start of string
$                       End of string
.                        Any single character
+                       One or more character
\                        Escape Special characters
?                       Zero or more characters

Input exactly match with “abc”
var A = /^abc$/;

Input start with “abc”
var B = /^abc/;

Input end with “abc”
var C = /abc$/;

Input “abc” and one character allowed Eg. abcx
var D = /^abc.$/;

Input  “abc” and more than one character allowed Eg. abcxy
var E = /^abc.+$/;

Input exactly match with “abc.def”, cause (.) escaped
var F = /^abc\.def$/;

Passes any characters followed or not by “abc” Eg. abcxyz12....
var G = /^abc.+?$/

Stage 2

Char                Group Explanation

[abc]                 Should match any single of character
[^abc]               Should not match any single character
[a-zA-Z0-9]      Characters range lowercase a-z, uppercase A-Z and numbers
[a-z-._]              Match against character range lowercase a-z and ._- special chats
(.*?)                  Capture everything enclosed with brackets
(com|info)         Input should be “com” or “info”
{2}                   Exactly two characters
{2,3}                Minimum 2 characters and Maximum 3 characters
{2,}                  More than 2 characters


Put together all in one URL validation.
var URL = /^(http|https|ftp):\/\/(www+\.)?[a-zA-Z0-9]+\.([a-zA-Z]{2,4})\/?/;

URL.test(“http://9lessons.info”);                      // pass
URL.test(“http://www.9lessons.info”);            // pass
URL.test(“https://9lessons.info/”);                   // pass
URL.test(“http://9lessons.info/index.html”);    // pass

Stage 3

Short Form     Equivalent              Explanation

\d                      [0-9]                         Any numbers
\D                     [^0-9]                       Any non-digits
\w                     [a-zA-Z0-9_]            Characters,numbers and underscore
\W                    [^a-zA-Z0-9_]          Except any characters, numbers and underscore
\s                       -                                White space character
\S                      -                                Non white space character


var number = /^(\+\d{2,4})?\s?(\d{10})$/;  // validating phone number

number.test(1111111111);           //pass
number.test(+111111111111);     //pass
number.test(+11 1111111111);    //pass
number.test(11111111);               //Fail

71 comments:

  1. Very nice post , Cool and simple
    nice share thank you bro

    ReplyDelete
  2. This is a great tutorial :) Can you write a tutorial for .htaccess like this ? it will be very help full. Thank you ! :)

    ReplyDelete
  3. Amazing, finally a good explanation, very thanks.

    ReplyDelete
  4. Sorry, but this test:
    URL.test("http://www.9lessons.inoofscriptalert(1)/scriptoo");
    pass too. So something is wrong.

    ReplyDelete
  5. Dont forget to include EMAIL Validation as well in this list :)

    ReplyDelete
  6. It's very helpful for all the programmer...Thanks

    ReplyDelete
  7. Very helpful thanks

    ReplyDelete
  8. Really useful.. Great Tutorial Again.. :)

    ReplyDelete
  9. Very good article, really helpful. Thanks a ton.

    ReplyDelete
  10. I was looking for a tutorial on regular expression which simple as well as sharp. My searching stop here.... :)

    ReplyDelete
  11. great job,very usseful,


    thanks for sharing

    ReplyDelete
  12. Good work , it is very helpful for all
    This is quit simple for all

    ReplyDelete
  13. very useful... and well explained..

    ReplyDelete
  14. it will be helpfull -next post on .htaccess

    ReplyDelete
  15. Hi Arun.

    Good Job. However my Suggestions are below.Correct me if i am wrong

    Possible Errors are: multiple wwwwww will be accepted.
    It should Be www? not www+

    And
    ([a-zA-Z]{2,4})\/?/ it should be ([a-zA-Z]{2,4})(\/|\?|$) to restrict the .com,in,.edun,etc then / or ? then any thing else can come

    So that below url ll be restricted
    URL.test("http://www.9lessons.inoofscriptalert(1)/scriptoo");

    The Final Regex is:
    "/^(http|https|ftp):\/\/(www?\.)?[a-zA-Z0-9]+\.([a-zA-Z]{2,4})(\/|\?|$)/"

    ReplyDelete
  16. ? => Zero or one character (instead)

    ReplyDelete
  17. Awesome bro. Helpful article for newbies.

    ReplyDelete
  18. Great! Thanks for the post dude, very helpful

    ReplyDelete
  19. good and nice tutorial...very helpfull

    ReplyDelete
  20. Great lesson! Thanks

    ReplyDelete
  21. I am looking for what is the use of Required.Js and how to use in our web apps.

    ReplyDelete
  22. very well explained.

    ReplyDelete
  23. from where u got such a deep knowledge

    ReplyDelete
  24. Nice Article. Most of the time i didn't understand why $ \ so it's very helpfull for me...

    ReplyDelete
  25. Please Update:

    /^(http|https|ftp):\/\/(www?\.)?[a-zA-Z0-9]+\.([a-zA-Z]{2,4})(\/|\?|$)/

    ReplyDelete
  26. Great............

    ReplyDelete
  27. Simple and useful....thanks fir sharing!

    ReplyDelete
  28. Thanks for the post Great article the information published here will be very useful. anyway thanks again. nice work :D

    ReplyDelete
  29. Classic Tutorial yar...

    ReplyDelete
  30. Very Nice Post :)
    It's Help me a lot.

    ReplyDelete
  31. it's Very Cool Post Thanks Arun

    ReplyDelete
  32. Nicely Explained Bro. Always had trouble understanding them. Thanks

    ReplyDelete
  33. Cool! Thanks for the tutorial!

    ReplyDelete
  34. Excellent

    ReplyDelete
  35. Hi,
    you don't know how much you made my coding life easier, thanks a million!!

    ReplyDelete
  36. Thanks for the great tutorial arun.keep going

    ReplyDelete
  37. Thank you for this wonderful article published in this page. This is very nice. I really liked it.

    ReplyDelete