我有以下JavaScript变量:
var keywords = split_option_value[3];
返回console.log(keywords);
以下字符串:
seo|drupal|seo marketing|wordpress|web development|web design|plugin
我想使用replace函数删除直线并添加逗号。为此,我正在使用:
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,
我的代码产生此问题的问题是什么?我做错了什么?任何指导和帮助都受到欢迎。
答案 0 :(得分:3)
您需要转义管道字符|
:
var good_keywords = keywords.replace(/\|/g, ',');
正如@FrédéricHamidi在评论中提出的那样。
p.s。:因为现在你的正则表达式意味着find all ("empty characters" OR "empty characters")
,这正是你在所有角色之间收到逗号的原因。
答案 1 :(得分:2)
使用正则表达式时,|
字符被视为特殊字符,必须进行转义才能按字面解释。
尝试:
var good_keywords = keywords.replace(/\|/g, ',');
答案 2 :(得分:1)
管道|
是正则表达式字符。它用于接受两种语法。例如:/a|b/g
即将匹配字符串中的a
或b
。
您应该使用/\|/g
。