2017-06-09 81 views
-3

我的輸入是 var email =「xyz + wex + rr%40gmail.com」;使用正則表達式替換Javascript中的字符串

我需要輸出

XYZ WEX RR @ gmail.com

我試圖與這下面的正則表達式,我只能從我的字符串中刪除+如何與替換%4015

email .replace(/ +/g,「」);

+1

你必須轉義像'+'這樣的正則表達式中具有特殊含義的字符。試試'/ \ +/g' – Rajesh

+0

只需用「\%40」作爲替換的搜索字符串運行另一個替換。 – DocWeird

+0

看看這個https://stackoverflow.com/a/20247435/2329980 –

回答

1

這裏需要溶液,

email.replace(/\+/g, " ").replace(/\%40/g, "@")

var email = "xyz+wex+rr%40gmail.com"; 
 
console.log(email.replace(/\+/g, " ").replace(/\%40/g, "@"))

結果:xyz wex [email protected]

請運行上述片斷

1

可以使用UNESCAPE功能來第一UNESCAPE串並比

更換+試試這個

var email = unescape("xyz+wex+rr%40gmail.com").replace(/[+]/g, " "); 
 
console.log(email)

正如@Florian阿爾布雷希特說,unescape已被棄用,從而已棄用Florian的回答較好

+0

unescape已棄用:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/unescape –

+0

thanks for分享 –

2

var email = "xyz+wex+rr%40gmail.com"; 
 
email = decodeURIComponent(email).replace(/\+/g, " "); 
 
console.log(email);

decodeURIComponent解碼之類的東西40%。它只是不會用空格替換+標誌,所以這是通過RegEx完成的,轉義加號在RegEx中具有特殊含義。