0

次の正規表現を使用して数字を電話形式に変換しています。

telephoneNumber = '1234567890';
var number = telephoneNumber.replace(/\D/g,''); 
newNumber = number.replace(/^(\d{3})(\d{3})(\d{4})$/, '($1)$2-$3'); // (123)456-7890

問題は、phoneNumber.length が 10 より大きい場合、何もしないことです。電話番号の末尾に数字を追加したい。

例えば:

change 1234567890 to (123)456-7890
change 1234567890111 to (123)456-7890111

上記の正規表現で何を変更する必要がありますか。

ありがとう。

4

2 に答える 2

1

最後の行を次のように変更してみてください。 newNumber = number.replace(/^(\d{3})(\d{3})(\d{4,})$/, '($1)$2-$3');

\d{4this が4桁以上を取るように指示した後、コンマを追加しました。

また、正規表現をテストするためにこのサイトをよく使用します: http://gskinner.com/RegExr/とても便利です。

于 2011-02-03T06:44:01.823 に答える
1

正規表現を使用したい唯一の理由は検証のためですが、文字列を電話番号にフォーマットしようとしているだけなら、Javascript Phone Number Formatterを使用しないでください。

于 2011-02-03T06:47:13.713 に答える