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

Form Validation using regular expressions

本文关键字:表单 验证 正则表达式      更新时间:2023-09-26

我是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后尝试过,但没有用。

任何提示都会很棒!

'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;

您可能还需要重新考虑是否真的需要一条警报,指出提交成功。我通常避免这种情况 - 如果某件事成功了,它应该是显而易见的。