MCJim
Aug 20th 2008, 5:29 pm
I would like to validate form data with Javascript rather than PHP. I would validate email, limit string length, and have character restrictions. Here is the PHP code that I'm using:
functions:
<?php
function isValidEmail($email) {
// First, we check that there's one @ symbol,
// and that the lengths are right.
if (!ereg("^[^@]{1,64}@[^@]{1,255}$", $email)) {
// Email invalid because wrong number of characters
// in one section or wrong number of @ symbols.
return false;
}
// Split it into sections to make life easier
$email_array = explode("@", $email);
$local_array = explode(".", $email_array[0]);
for ($i = 0; $i < sizeof($local_array); $i++) {
if (!ereg("^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&↪'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$", $local_array[$i])) {
return false;
}
}
// Check if domain is IP. If not,
// it should be valid domain name
if (!ereg("^\[?[0-9\.]+\]?$", $email_array[1])) {
$domain_array = explode(".", $email_array[1]);
if (sizeof($domain_array) < 2) {
return false; // Not enough parts to domain
}
for ($i = 0; $i < sizeof($domain_array); $i++) {
if (!ereg("^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])| ↪([A-Za-z0-9]+))$", $domain_array[$i])) {
return false;
}
}
}
return true;
}
// ---------------------------------------------
function isOnlyLetters($var)
{
return (preg_match("/^[a-zA-Z]+$/", $var)) ? true : false;
}
// ---------------------------------------------
function isValidLength($var, $length)
{
return (strlen($var) <= $length) ? true : false;
}
Use:
$email = 'me@me.com';
if (isValidEmail($email)) {
echo 'valid';
} else {
echo 'invalid';
}
$field = 'testing';
if (isOnlyLetters($field)) {
echo 'only letters';
} else {
echo 'not just letters!';
}
$field = '12345678';
if (isValidLength($field, 8)) {
echo 'valid length';
} else {
echo 'invalid length';
}
I would like to do the same type of validation, except with Javascript so the user doesn't have to refresh the page to see if its valid. An example of this would be the gmail sign up: mail.google.com/mail/signup
Any help or a point in the right direction is appreciated. Thanks!
functions:
<?php
function isValidEmail($email) {
// First, we check that there's one @ symbol,
// and that the lengths are right.
if (!ereg("^[^@]{1,64}@[^@]{1,255}$", $email)) {
// Email invalid because wrong number of characters
// in one section or wrong number of @ symbols.
return false;
}
// Split it into sections to make life easier
$email_array = explode("@", $email);
$local_array = explode(".", $email_array[0]);
for ($i = 0; $i < sizeof($local_array); $i++) {
if (!ereg("^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&↪'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$", $local_array[$i])) {
return false;
}
}
// Check if domain is IP. If not,
// it should be valid domain name
if (!ereg("^\[?[0-9\.]+\]?$", $email_array[1])) {
$domain_array = explode(".", $email_array[1]);
if (sizeof($domain_array) < 2) {
return false; // Not enough parts to domain
}
for ($i = 0; $i < sizeof($domain_array); $i++) {
if (!ereg("^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])| ↪([A-Za-z0-9]+))$", $domain_array[$i])) {
return false;
}
}
}
return true;
}
// ---------------------------------------------
function isOnlyLetters($var)
{
return (preg_match("/^[a-zA-Z]+$/", $var)) ? true : false;
}
// ---------------------------------------------
function isValidLength($var, $length)
{
return (strlen($var) <= $length) ? true : false;
}
Use:
$email = 'me@me.com';
if (isValidEmail($email)) {
echo 'valid';
} else {
echo 'invalid';
}
$field = 'testing';
if (isOnlyLetters($field)) {
echo 'only letters';
} else {
echo 'not just letters!';
}
$field = '12345678';
if (isValidLength($field, 8)) {
echo 'valid length';
} else {
echo 'invalid length';
}
I would like to do the same type of validation, except with Javascript so the user doesn't have to refresh the page to see if its valid. An example of this would be the gmail sign up: mail.google.com/mail/signup
Any help or a point in the right direction is appreciated. Thanks!