使用正则表达式进行表单验证

时间:2012-06-11 18:26:08

标签: javascript regex validation

我是Javascript的新手,我正在学习正则表达式,并且想知道是否有人能够解释我遇到的一些问题。

我正在撰写需要在发送之前进行验证的反馈表,我不太确定如何为地址添加空格。

到目前为止我有这个代码,只要我不包含空格就可以使用:

function isAlphanumeric(elem, helperMsg){
    var alphaExp = /^[0-9a-zA-Z]+$/;
    if(elem.value.match(alphaExp)){
        return true;
    }else{
        alert(helperMsg);
        elem.focus();
        return false;
    }
}

我可以简单地插入\ w,以便表达式包含空格吗?

另外,我想做一个让用户知道表单提交成功的警报。使用此代码:

if(isAlphabet(firstname, "Please only enter letters for your name")){
if(isAlphabet(surname, "Please only enter letters for your name")){
if(emailValidator(email, "Please enter a valid email address")){
if(isNumeric(phone, "Please enter a valid telephone number")){
if(isAlphanumeric(address1, "Numbers and letters only for address")){
if(isAlphanumeric(pcode, "Please enter a valid postcode")){
{
return true;

}}}}}}}

return false;

插入代码的最佳位置在哪里?我试过return true,但它没有用。

任何提示都会很棒!

1 个答案:

答案 0 :(得分:3)

\w不包含空格,因此不起作用。如果您只想允许文字空格字符,请插入它:

/^[0-9a-zA-Z ]+$/

如果您想允许所有类型的空格字符,请使用\s

/^[0-9a-zA-Z\s]+$/

至于在return true;之后发出警报,这肯定是行不通的; return,顾名思义,从函数返回。函数的执行在那里结束。只需将alert放在return true

之前

您也可以考虑使用&&(逻辑AND)来使事情更加整洁。

if(isAlphabet(firstname, "Please only enter letters for your name")
&& isAlphabet(surname, "Please only enter letters for your name")
&& emailValidator(email, "Please enter a valid email address")
&& isNumeric(phone, "Please enter a valid telephone number")
&& isAlphanumeric(address1, "Numbers and letters only for address")
&& isAlphanumeric(pcode, "Please enter a valid postcode")) {
{
    alert('Form submission successful.');
    return true;
}

return false;

您可能还想重新考虑是否确实需要提示说提交成功。我通常会避免这种情况 - 如果某些事情成功,那就应该是显而易见的。