1

我是 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,但它没有用。

任何提示都会很棒!

4

1 回答 1

3

\w不包括空格,所以这不起作用。如果您只想允许文字空格字符,请插入它:

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

如果要允许各种空格字符,请使用\s

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

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

您也可以考虑使用&&(logical 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;

您可能还想重新考虑您是否真的想要一个提示提交成功的警报。我通常会避免这种情况——如果某件事是成功的,那应该是显而易见的。

于 2012-06-11T18:29:31.883 回答