CheckPattern(checkWhat, str)
Last updated January 15, 2003
Version: 2 | Requires: CF5 | Library: StrLib
Description:
RPV uses regular expressions to check and match the string to a predefined pattern. For instance, date, phone number, credit card and so on. 2 parameters are required for using RPV, name of the pattern to check (see code), and the string to validate. If a patter is not found, the UDF will return false.
Using UDF, you can extend the functionality by including your own patterns. Just add another case towards the bottom (above the default).
Usage: #CheckPattern(PatternToCheck,stringToCheck)#
Note: Many of these patterns are off of the internet. In the next version, I'll try to include as many credits to the original authors as possible, including specific example of pattern matches and non-matches. I can really only take credit for the UDF and not the patterns.
Return Values:
Returns a boolean.
Example:
<cfif CheckPattern("isIP","10.10.10.10")>
The IP you supplied will be ...
<cfelse>
Please provide a valid IP address
</cfif>
Parameters:
Name | Description | Required |
---|---|---|
checkWhat | Name of the pattern to use. | Yes |
str | String to check. | Yes |
Full UDF Source:
/**
* This UDF is an extensible, easy to use pattern validator using regular expressions.
* Rewrites by rcamden.
*
* @param checkWhat Name of the pattern to use. (Required)
* @param str String to check. (Required)
* @return Returns a boolean.
* @author Chris Chay (itadept@earthlink.net)
* @version 2, January 15, 2003
*/
function CheckPattern(checkWhat, str) {
var rePattern=""; // Assign RE pattern to this variable
switch (checkWhat){
case "isEmail":
rePattern="^([\w\d\-\.]+)@{1}(([\w\d\-]{1,67})|([\w\d\-]+\.[\w\d\-]{1,67}))\.(([a-zA-Z\d]{2,4})(\.[a-zA-Z\d]{2})?)$";
break;
case "isIP":
rePattern="^(((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|0?[0-9]?[0-9])\.){3,3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|0?[0-9]?[0-9]))$";
break;
case "isFloat":
rePattern="^[-+]?\d*\.?\d*$";
break;
case "isInteger":
rePattern="^[+-]?\d+$";
break;
case "isUSPhone":
rePattern="^((\(\d{3}\) ?)|(\d{3}-))?\d{3}-\d{4}$";
break;
case "isUSCurrency":
rePattern="^\$(\d{1,3}(\,\d{3})*|(\d+))(\.\d{2})?$";
break;
case "isDate":
rePattern="^(?:(?:(?:0?[13578]|1[02])(\/|-|\.)31)\1|(?:(?:0?[1,3-9]|1[0-2])(\/|-|\.)(?:29|30)\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:0?2(\/|-|\.)29\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:(?:0?[1-9])|(?:1[0-2]))(\/|-|\.)(?:0?[1-9]|1\d|2[0-8])\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$";
break;
case "isCreditCard":
rePattern="^((4\d{3})|(5[1-5]\d{2})|(6011))-?\d{4}-?\d{4}-?\d{4}|3[4,7]\d{13}$";
break;
case "isSSN":
rePattern="^\d{3}-\d{2}-\d{4}$";
break;
case "isZipCode":
rePattern="^\d{5}-\d{4}|\d{5}|[A-Z]\d[A-Z] \d[A-Z]\d$";
break;
default:
return("That pattern check is not available");
break;
}
return reFindNoCase(rePattern,str);
}
Search CFLib.org
Latest Additions
Raymond Camden added
QueryDeleteRows
November 04, 2017
Leigh added
nullPad
May 11, 2016
Raymond Camden added
stripHTML
May 10, 2016
Kevin Cotton added
date2ExcelDate
May 05, 2016
Raymond Camden added
CapFirst
April 25, 2016