2

テキスト ボックスがあり、「Phone:」と表示されています。電話番号の標準は (XXX)-XXX-XXXX であるため、番号がその形式でない場合に自動的にその形式に変換する JavaScript が必要です。したがって、9993334444 と入力すると、(999)-333-4444 と入力しているときにその場で自動的に変更されます Javascript Phone Regex について Google を調べましたが、うまくいきませんでした。探している?

4

2 に答える 2

2

次のような正規表現で onkeyup イベントを追加したい

this.value = this.value.replace(/^\(?([0-9][0-9][0-9]){1}\)?-?([0-9][0-9][0-9][0-9]){1}-?([0-9][0-9][0-9]){1}$/, '($1)-$2-$3');

http://jsfiddle.net/R8enX/をチェックしてください

/ means start/end a regex string
^ means start of matching string
$ means end of matching string
? means 0 or 1 instances (make braces and dashes optional)
[0-9] means any single digit
(x){1} tags x as an expression that we can reference in the replacement with a $ sign

編集:数字の最後のグループで数字を逃したことに気付きました.jsfiddleは最後のグループの3桁でのみ(適切に)機能します

于 2012-05-16T12:11:44.103 に答える
0

@Andrewsの回答に基づいて構築するには、この方法で有効な(ローカル)電話番号を確認できます。番号が 10 桁より短いか大きい場合は、無効な番号に折りたたまれます

-

<input type="text" onBlur="localNumber(this.value)"/>

<div id="output"></div>

-

<script>

var localNumber = function(str){

    repl = str.replace(/^([0-9]{3})([0-9]{3})([0-9]{4})$/, "($1)-$2-$3");
    outp = document.getElementById('output');

    if( repl.match(/\W/) )
    {
        outp.innerHTML = repl;
    }
    else
    {
        outp.innerHTML = 'Invalid number for this region';
    }

}

</script>
于 2012-05-16T12:52:49.453 に答える