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、名前が示すように、関数から戻ります。関数の実行はそこで終了します。alertの前に置くだけreturn trueです。

&&(論理積)を使用して、そこで物事をすっきりさせることも検討してください。

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 に答える