Validation using Regular Expressions

Post on 08-Jan-2016

38 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

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. - PowerPoint PPT Presentation

Transcript

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

top related