0

フォームの電話番号フィールドに対して JavaScript を使用して検証しようとしています。

別の Web サイトから正規表現を取得しましたが、ほとんど機能します。

ただし、「1234abc5678」のように数字の間に文字を配置すると、JavaScript でフォームを送信できます。

ここに私の検証コードがあります:

if (telephone==null || telephone=="")
  {
  alert("Telephone must be filled out");
  return false;
  }

var regexp = telephone.replace(/^[\s()+-]*([0-9][\s()+-]*){6,20}$/);
if (telephone.match(regexp))
  {
  alert("Telephone number is not valid");
  return false;
  }

誰かがこのコードを手伝ってくれて、何がうまくいかないのか教えてくれませんか

もう 1 つのテストの後、先頭に + を追加すると、数字内の文字が許可されることがわかりました。最初に + を許可する必要がありますが、明らかに文字は許可しません。

私の必要な出力は、長さが 6 ~ 20 文字の電話番号で、入力する必要がある場合は先頭に + を付けることもできます。その他の文字は無効にする必要があります

4

5 に答える 5

2
if (telephone==null || telephone=="") {
    alert("Telephone must be filled out");
    return false;
}

var regexp = /^[\s()+-]*([0-9][\s()+-]*){6,20}$/;
if (! telephone.match(regexp)) {
    alert("Telephone number is not valid");
    return false;
}
于 2013-06-19T10:56:14.420 に答える