如何使用jQuery从URL替换%7C和%20?

时间:2018-08-07 09:26:09

标签: jquery

代码:

str = noida | hotel paradise;
a = str.replace(/ /g, "+");
b = a.replace(/\ | /g,"+");
alert(b);

在这段代码中,我有一个字符串noida | hotel paradise,我想用|运算符替换+和空格,该运算符尚不可用。当我单击按钮时,它显示的结果类似于noida+|+Ramada+Phuket+Deevana+Patong,但我想要noida+Ramada+Phuket+Deevana+Patong。那么,如何解决此问题?请帮助我。

谢谢

5 个答案:

答案 0 :(得分:1)

您想要一个带有空格和|的简单字符类,并且可能需要一个“一个或多个”量词(+):

a = str.replace(/[ |]+/g, "+");
alert(a);

实时示例:

var str = "noida | hotel paradise";
var a = str.replace(/[ |]+/g, "+");
console.log(a);

答案 1 :(得分:0)

第二个正则表达式有一个问题:它用反斜杠转义了空格,这是不必要的,但它没有转义竖线符号,而 是必需的。而且,它在管道周围需要一个空间,这不是您在问题中所需要的。因此将其更改为:

b = a.replace(/\|/g,"+");

您可以一次性完成两个替换,并将重复仅替换为一个加号:

b = str.replace(/[ |]+/g, "+")

答案 2 :(得分:0)

如何?

var str = 'noida | hotel paradise'
var replaced = str.replace(/\|/g, '+').replace(/ /g, '+').replace(/\+\+/, '');
console.log(replaced);

首先将所有|替换为+,然后删除重复的+

答案 3 :(得分:0)

str = 'noida | hotel paradise;'
a = str.replace(/[|\s]+/g, "+");
alert(a);

尝试

str = 'noida | hotel paradise;'
a = str.replace(/[|\s]+/g, "+");
alert(a);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

答案 4 :(得分:-1)

您也可以做类似的事情。

"noida | hotel paradise".replace(/[^\w\-]+/g, '+');
//"noida+hotel+paradise"