代码:
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
。那么,如何解决此问题?请帮助我。
谢谢
答案 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"