1

私は初心者ですが、どのように組み合わせますか:

var mystring = "my.email@computer.com";
document.write(mystring.replace(/@/, "&&"));

版画my.email&&computer.com

var mystring = "my.email@computer.com";
document.write(mystring.replace(/\./, "##"));

版画my##email@computer.com

2 つの質問があります: toを@変更した後にこの正規表現 (mystring.replace(/./, "##") を 作成する方法と、これらの 2 行を 1 つに結合する方法を教えてください。最終的な読み取りは次のとおりです。dot##my.email&&computer##com

4

5 に答える 5

4

入力:my.first.last.email@example.computer.com

結果 :my.first.last.email&&example##computer##com

解決策1:

var mystring = "my.first.last.email@example.computer.com";
//replace '.' after '@' with '##', then replace '@' with '&&'.
var result = mystring.replace(/(?!.*@)\./g, "##").replace(/@/, "&&");
document.write(result);

解決策2(構成可能):

var mystring = "my.email@computer.com";

var replacements = {
                    '@' : '&&',
                    '.' : '##'
                   };

var str =  "my.first.last.email@example.computer.com";

//match latter part of the string
var result = str.replace(/@\w+(\.\w+)+/g, function(at_and_after) {
    //replace all '.' and '@' in that part.
    return at_and_after.replace(/@|\./g, function(m) { return replacements[m]});
});
document.write(result);  //console.log(result) or alert(result) is a better way for demo
于 2013-02-07T03:53:36.153 に答える
2

これを試して...

var mystring = "my.email@computer.com";
document.write(mystring.replace(/(.*@.*)\./, "$1##").replace(/@/, "&&"));
于 2013-02-07T03:55:03.190 に答える
1

splitを使用して/@/で文字列を分割し、2番目の正規表現を文字列の2番目の部分に適用してから、結果を&&で結合し直すことができます。

于 2013-02-07T03:52:58.460 に答える
1

これはうまくいくはずです:

var mystring = "my.email@computer.com";
document.write(mystring.replace(/(.*?)(@)(.*?)(\.)(.*)/, "$1&&$3##$5"));

結果:

my.email&&computer##com

ここで動作することを確認してください:http://jsfiddle.net/gnB85/

于 2013-02-07T04:10:02.357 に答える
0

これを試して:

var mystring = "my.email@computer.com"
document.write(mystring.replace(/\.(?!\w+@)/, '##').replace(/@/, '&&'));
于 2013-02-07T04:03:19.173 に答える