2016-05-03 5 views
0

電子メールで@記号を - と置き換えます。このコードでdが@に置き換えられる理由

var authdata = JSON.parse(getCookie("authData")); 
var namespace = authdata.Email.replace('@','_'); 
namespace = namespace.replace(/./, '_'); 
namespace = namespace.replace(/\./g, '_'); 

名前空間には、 '_emo_duosoftware_com' として来

enter image description here

答えて

3

正規表現内の.は一致します改行を除く任意の1文字。

問題は、小数点記号を置き換えるバックスラッシュを前置することによってそれを逃れるために、ここで

namespace.replace(/./, '_'); 

です。

2つのステートメントはできるだけ

var namespace = authdata.Email.replace(/[@.]/g, '_'); 

一致@又は.な回数(gフラグ)を合わせ、_によって置き換えることができます。

+0

@Sajeetharanおそらくあなたは、文字列 '.replace( '。'、 '_') – Tushar

1

それが原因で、この正規表現のためです:

namespace = namespace.replace(/./, '_'); 

それは非グローバルワイルドカードですが、ここを参照してください:http://regexone.com/lesson/wildcards_dot

+0

あなたはそのコードに置き換えようとしていますか? – Shomz

関連する問題