This function restrict numbers: function ChkEmail( emailaddr ) { var objRegExp = /(^[a-z]([a-z_\.]*)@([a-z_\.]*)([.][a-z]{3})$)|(^[a-z]([a-z_\.]*)@ ([a-z_\.]*)(\.[a-z]{3})(\.[a-z]{2})*$)/i; //check the address and return true if formatted ok return objRegExp.test( emailaddr ); } This function allows a little more flexibility: function ChkEmail( emailaddr ) { var objRegExp = /(^[a-z]([a-z_0-9\.]*)@([a-z_\.]*)([.][a-z]{3})$)|(^[a-z]([a-z_\.]*)@ ([a-z_\.]*)(\.[a-z]{3})(\.[a-z]{2})*$)/i; //check the address and return true if formatted ok return objRegExp.test( emailaddr ); } This one is wide open and only checks the basic syntax: function ChkEmail( emailaddr ) { var objRegExp = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/; //check the address and return true if formatted ok return objRegExp.test( emailaddr ); } This funtion allows close to maximum flexibility: function ChkEmail( emailaddr ) { var objRegExp = /[^\s@]+@[^\s@]+\.[^\s@]+/; return objRegExp.test( emailaddr ); } function ChkPhoneUSDash( phonenumber ) { var objRegExp = /^[0-9]{3}[\- ]?[0-9]{3}[\- ]?[0-9]{4}$/; //check for desired phone format 999-123-4568 return objRegExp.test( phonenumber ); } if (! ChkPhoneUSDash( this.value )) { alert('Please check the phone number. The format should be 123-123-1234. Thank you.'); setTimeout("f.Frm_Fld.focus();",1); // give time for user tab key to happen so we can move focus back } Note: Alternate e-mail regex formulas: /(^[a-z0-9]([a-z0-9_\.]*)@([a-z_\.]*)([.][a-z]{3})$)|(^[a-z]([a-z_\.]*)@([a-z0-9_\.]*)(\.[a-z0-9]{3})(\.[a-z]{2})*$)/i - This version allows numbers after the letters in IE. It's big bug so far is that it allows name123@.com where the domain is left out. \b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b - This one is more flexible and allows more flexibility in the domain suffix (e.g. com vs info). \w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*