我有以下 JavaScript 变量:
var keywords = split_option_value[3];
在 console.log(keywords);
上返回以下字符串:
seo|drupal|seo marketing|wordpress|web development|web design|plugin
我想使用替换功能删除直线并添加一个逗号。为此,我正在使用:
var good_keywords = keywords.replace(/|/g, ',');
不幸的是,这并没有像在 console.log('good_keywords')
上接收到的那样工作:
,s,e,o,|,d,r,u,p,a,l,|,s,e,o, ,m,a,r,k,e,t,i,n,g,|,w,o,r,d,p,r,e,s,s,|,w,e,b, ,d,e,v,e,l,o,p,m,e,n,t,|,w,e,b, ,d,e,s,i,g,n,|,p,l,u,g,i,n,
产生此问题的代码有什么问题,我做错了什么?我们非常欢迎任何指导和帮助。
最佳答案
你需要对管道字符|
进行转义:
var good_keywords = keywords.replace(/\|/g, ',');
正如@Frédéric Hamidi 在他的评论中提出的那样。
p.s.:因为现在您的正则表达式表示查找所有(“空字符”或“空字符”)
,这正是您在所有字符之间收到逗号的原因。
关于JavaScript 全局替换字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27528146/