如何在Character之前和之后替换Space而不是在number之前和之后

时间:2017-06-25 01:51:03

标签: javascript

所有我尝试并发现,将删除所有空格。但这不是我想要的

我的字符串是

 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?

2 个答案:

答案 0 :(得分:2)

你可以这样做。



var str = "24 july 2014 12 5";

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




JS不支持lookbehinds,因此一种解决方法是使用捕获组和回声。另一个替代是由前瞻支持。

OP,根据您的评论,您似乎也希望解码URL参数。这是正确的方法:



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




答案 1 :(得分:0)

可能是一种更奇特的方式,但只需检查它是否是一个后跟alpha或alpha后跟空格的空格

"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')