Andy Jarrett // Code. Develop. Manage.

Using RegEx to cut down on code

I sometimes forget how useful/powerful RegEx can be. Take the following bit of CFIF logic

[sourcecode language="plain"]<cfset username = trim(form.uname) /><cfif len(username) LT 4> <cfset errorMsg = "Your username is too short" /><cfelseif NOT reFindNoCase("[\\w]", username, 1, "false")> <cfset errorMsg = "Your username is too short" /></cfif>[/sourcecode]

A quick regex guide: the "\\w" reference stands for "word character", which translates to [A-Za-z0-9_] n.b.the underscore as well

You can actually add on to the regex and at the same time cut down a lot of the logic by doing the following:

[sourcecode language="plain" gutter="true" toolbar="true" wraplines="true"]<cfif NOT refindnocase("[\\w]{4,}", username, 1, "false")> <cfset errorMsg = "Usernames must be 4 characters in length and contain [A-Za-z 0-9 _" /></cfif>[/sourcecode]

The key is "{4,}". Using the curly braces to specify a specific amount of repetition of "word characters" and is equivilant to "len(username) LT 4"


I’m here, learning and working away. If you liked this content and want to keep me going, consider buying me a coffee.
Your support keeps this site running and the coffee brewing! ☕️