2017-06-25 25 views
0

我試過並找到的所有空格都會被刪除。但那不是我想要什麼如何替換前後的字符字符不前後的號碼

我的字符串是

var str = "24 july 2014 12 5"; 

我想

"24july2014 12 5" 

,我發現這個代碼示例

var str = "Paul m'a dit « Bonjour ! »"; 
str = str.replace(/\s([!:\?…;»])/g, function (el1, el2) { 
return ' ' + el2; 
}).replace(/(«)\s/g, function (el1, el2) { 
return el2 + ' '; 
}); 
console.log(str); 

但它不能改變我的問題。也許我是太多noob?

+0

第一和第二空間也是之前和號碼後。 –

+0

「2014年7月12日12 5」.replace(/ \ s +([az])|([az])\ s +/ig,'$ 1') – epascarello

+0

mmmh但比我變成「24jul2014 12 5」缺少 – user2826395

回答

0

可能是一個更看中的方式,但簡單的檢查,看它是否是或之後阿爾法空間中的字母后面有一個空格

"12 july 2014 12 5".replace(/\s+([a-z])|([a-z])\s+/ig,'$1$2') 

"12 july 2014 12 5".replace(/\s+([\D])|([\D])\s+/ig,'$1$2') 
+0

完美!非常感謝 – user2826395

+0

新問題 - >你能告訴我如何替換字符串「alabama%20justin」中的「%20」。所以我想要「阿拉巴馬賈斯汀」 哦,我明白了。解決方案 - > str.replace(/%\ d {2}/g,「」) – user2826395

+0

似乎對我來說是一個新問題....大聲笑...但似乎它是一個簡單的替換(/%20/g ,'') – epascarello

2

你可以做到這一點。

var str = "24 july 2014 12 5"; 
 

 
str = str.replace(/ (?=[a-z])/g, "").replace(/([a-z]) /g, "$1"); 
 
console.log(str);

JS不支持lookbehinds,所以一個解決方法是使用捕獲組和回聲。另一個替換由前瞻支持。


根據你的評論,你似乎也想解碼URL參數。這是做正確的方式:

string = "alabama%20justin"; 
 
console.log(decodeURIComponent(string));

+1

這是一個非常乾淨的解決方案。 – shaochuancs

+0

新問題 - >你能告訴我如何替換字符串「alabama%20justin」中的「%20」。所以我想要「阿拉巴馬賈斯汀」 哦,我明白了。解決方案 - > str.replace(/%\ d {2}/g,「」) – user2826395

+0

@ user2826395:您不應該爲此使用正則表達式。檢查我的編輯。 –

相關問題