Validation using Regular Expressions
Jan 08, 2016
Validation using Regular Expressions
Regular Expression
• Instead of asking if user input has some particular value, sometimes you want to know if it follows a particular pattern. – For example, is it a phone number?
• The patterns are known as regular expressions. • They can be confusing, but there are libraries of
them – so you don’t have to come up with your own if your data follows a well-known pattern
PHP preg_match
if(!preg_match("/[a-zA-Z]+/",$firstName))
if(!preg_match("/[a-zA-Z]+/",$firstName))
• The simplest version of preg_match takes two arguments – The first is a regular expression pattern that is placed
between “/ and /”– The second is the string variable in which one
searches for the pattern
• The function returns true if the pattern is found, false if the pattern is not found
• The exclamation point ! Is the not operator – used here because we want to do something if the pattern is not found
The pattern: [a-zA-Z]+
• The square brackets indicate a set of characters.
• The hyphen indicates a range.
• Thus this pattern is a-z or A-Z, in other words a small or capital letter.
• The + sign indicates that there should be one or more letters in the pattern– But there can be other things in the pattern
Blocked
Let through
if(!preg_match("/^[a-zA-Z]+/",$firstName))
• Adding the caret ^ indicates that the string variable should not just have a string of one or more letters but it should start with a string of one or more letters.
Blocked: Doesn’t start with letters
Allowed: starts with letters
if(!preg_match("/^[a-zA-Z]+$/",$firstName))
• Adding the dollar sign $ indicates that the string variable should not just have a string of one or more letters but it should end with a string of one or more letters.– So now it should begin and end with letters –
nothing else is allowed. – That may be too strong, it doesn’t allow for
spaces, hyphens or apostrophes
Regular Expression library: http://regexlib.com
^[a-zA-Z]+(([\'\,\.\- ][a-zA-Z ])?[a-zA-Z]*)*$
Testing a regular expression on the client side
function validateForm() {
var firstName=document.getElementById("txtFirstName").value; var lastName=document.getElementById("txtLastName").value;var pattern = new RegExp(/^[a-zA-Z]+$/);
if(! firstName.match(pattern)) { alert("Please enter a proper first name."); return false; } else if(! lastName.match(pattern))
{ alert("Please enter a proper last name.");
return false;}
}
var pattern = new RegExp(/^[a-zA-Z]+$/);
• Declares a regular expression in JavaScript
if(! firstName.match(pattern))
• Determines whether the string variable firstName matches the pattern determined by the regular expression