dp_check_var name valueWhat it does:
Checks the value of $name against the type of data that we expect to find. Returns null if the $name looks ok; returns an error otherwise.Defined in: /web/philip/tcl/data-pipeline-defs.tcl
Source code:
set type [dp_variable_type $name] switch -exact $type { phone { ## It's hard to catch all the cases for phone numbers. We just make sure there ## are at least 10 characters if { ![empty_string_p $value] && [string length $value] < 10 } { return "$value doesn't look like a valid phone number - please make sure that you entered in an area code" }} email { ## Email address must be of the form yyy@xxx.zzz if { ![empty_string_p $value] && ![philg_email_valid_p $value] } { return "The email address that you typed, $value, doesn't look right to us. Examples of valid email addresses are <ul> <li>Alice1234@aol.com <li>joe_smith@hp.com <li>pierre@inria.fr </ul> " }} expr { ## expressions are a potential security hole IF we allow people to ## put in arbitrary strings. We limit expressions to 1 word (i.e. no ## spaces). set temp $value regsub {^[ ]*} $temp "" temp regsub {[ ]*$} $temp "" temp if { [regexp -- { } $temp] } { return "'$value' isn't a valid expression. Expressions can only be a single word." }} year { if [regexp -- {[^0-9]} $value] { return "'$value' isn't a valid year" } elseif { [string length $value] != 4 } { return "A year must be a four-digit number (you entered '$value')" }} int { if [regexp -- {[^0-9]} $value] { return "'$value' isn't an integer" }} money { regsub -all {,} $value {} value if {![empty_string_p $value] && [catch {expr $value * 2}]} { return "'$value' isn't a real number" }} date { # We have to rearrange the ascii date format for the ns_buildsqldate function set ymd [split $value {-}] if { [catch { ns_buildsqldate [string trimleft [lindex $ymd 1] "0"] [lindex $ymd 2] [lindex $ymd 0] }] } { return "'$value' is not in the proper date format (YYYY-MM-DD)" } } }