Understanding Regular Expression
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.

Author
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\$/;

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(“https://9lessons.info”);                      // pass
URL.test(“https://www.9lessons.info”);            // pass
URL.test(“https://9lessons.info/”);                   // pass
URL.test(“https://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

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

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

3. Great Work, Thanks for Sharing =)

4. Amazing, finally a good explanation, very thanks.

5. Sorry, but this test:
pass too. So something is wrong.

6. It's very useful. thanks

7. ya nice tutorial

8. it nice and simple ..

9. very nice and useful

10. thanks for useful information

11. explained very well :) thx

12. Nice post. It was very helpful !

13. Very Nice Post.Thanks Dude

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

15. Amazing very good explanation

16. It's very helpful for all the programmer...Thanks

17. Thanks for sharing.... :)

19. Really useful.. Great Tutorial Again.. :)

20. Very good article, really helpful. Thanks a ton.

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

22. great job,very usseful,

thanks for sharing

23. Really good job, Thanks

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

25. nice thanks for posting...

26. Great useful info

27. very useful... and well explained..

28. it will be helpfull -next post on .htaccess

29. very useful.. nice explanation

30. great work dude

31. Great help bro thanks

32. 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

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

33. great tutorial,,,tanks bro

34. ? => Zero or one character (instead)

35. Awesome bro. Helpful article for newbies.

36. Great! Thanks for the post dude, very helpful

37. good and nice tutorial...very helpfull

38. Great lesson! Thanks

39. Very nice! You help us more!!

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

41. very well explained.

42. from where u got such a deep knowledge

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

44. Simple and Powerful
Thanks

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

46. Great............

47. Simple and useful....thanks fir sharing!

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

49. Classic Tutorial yar...

50. Very Nice topics

51. Very Nice topics

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

53. Helps me a lot

54. it's Very Cool Post Thanks Arun

55. Nicely Explained Bro. Always had trouble understanding them. Thanks

56. Cool! Thanks for the tutorial!

57. Excellent

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

59. Awesome tutorial.

60. Great Tutorial
it-sharks.com

61. Thnks a lot

62. Thanks for the great tutorial arun.keep going

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

64. thank q for ur explanation

65. thanks 4 u :)

66. Good explanation

67. Very useful for beginners

68. Really like this post. Thanks for sharing it bro

69. Nice tutorial

70. Thank you it is very useful.And explanation also Superb.

71. Simple, precise and straight to the point. Thank you for this.