2012-01-05 3 views
1

JavaScriptのクライアントページに移動するコード行がサーバー上にあります。javascriptへの#regex

string ThePhone = "1234567890"; 
string ThisFormat = Regex.Replace(ThePhone, @"(\d{3})(\d{3})(\d{4})", "$1-$2-$3"); 

123-456-7890を返すことになっています。どのように私はこれをjavascriptに変更できますか?

ありがとうございました。

+0

@Marcus:いくつかの試行錯誤の変更を試みました。手伝ってくれますか? – frenchie

+0

コビの答えが働くはずです。 http://jsfiddle.net/BBTfN/ – Marcus

答えて

2

それはほとんど同じこの場合は次のとおりです。

phone = phone.replace(/(\d{3})(\d{3})(\d{4})/, '$1-$2-$3'); 

注:

  • 文字列が複数の電話が含まれている(が、その後、私たちも場合は、/gフラグ(/.../g)が必要ですまた、\b
  • \dの.NetはすべてのUnicode数字と一致し、JavaScriptでは[0-9]と一致します。
+0

さらに、これを達成する他の方法があります - 正しい位置にダッシュを挿入するか、 '/(\ d {3 })(\ d {3})/ 'を' $ 1- $ 2-''に置き換えます。 – Kobi

+0

これはうまくいかないようです。私はそれが近いと知っているが、私はこの変換にも苦労している。 1つの電話しか含まれていません。それは10桁の文字列です。私は結果を警告するとき、私は同じ初期文字列を取得します。 – frenchie

+0

@frenchie - 私のための作品:http://jsbin.com/esoyat。万一、 'phone ='部分を忘れましたか? – Kobi