0

我是 JavaScript 新手,尤其是使用正则表达式。我想知道,如果我定义一个检查许多不同错误的正则表达式,我如何为每个错误生成单独的错误警报,而不是一条涵盖所有发现的错误的消息?例如,这个表达式提示一个警告框是输入字段是数字,如果有空格,或者发现定义的无效字符。我如何生成单独引用每个条件的警报,即,如果问题只是找到了一个空格,这就是消息的全部内容:

var pattern = /[\d+\s#!%&*:<>?/{|}]/ 
if(document.myform.usernameInput.value.match(pattern)){  
  alert("do not use numbers, spaces or invalid caharacters: #%&*:<>?/{|}")
4

1 回答 1

1

最简单的方法是使用几个正则表达式:

function check(str) {
    var digits = /\d/;
    var spaces = /\ /;
    var chars  = /[\#\!\%\&\*\:\<\>\?\/\{\|\}]/;

    if(str.match(digits)){  
        alert("do not use numbers");
        return false;
    };
    if(str.match(spaces)){  
        alert("do not use numbers");
        return false;
    };
    if(str.match(chars)){  
        alert("do not use invalid caharacters: #%&*:<>?/{|}");
        return false;
    };
    return true;
}
于 2013-09-19T09:09:36.363 回答