Javascript 删除JS字符串中的连续垂直条

Javascript 删除JS字符串中的连续垂直条,javascript,regex,Javascript,Regex,是否有一个好的正则表达式可以将字符串中的2个或多个竖线字符(“| |”)替换为一个竖线(“|”)?我使用的是AngularJS 1.5.7$scope.outputValue是一个数组,我正在将其转换为字符串,然后实现两个不同的正则表达式: $scope.outputValue = $scope.outputValue.toString(); $scope.outputValue = $scope.outputValue.replace(/,/g, "|"); $scop

是否有一个好的正则表达式可以将字符串中的2个或多个竖线字符(“| |”)替换为一个竖线(“|”)?我使用的是AngularJS 1.5.7$scope.outputValue是一个数组,我正在将其转换为字符串,然后实现两个不同的正则表达式:

$scope.outputValue   =     $scope.outputValue.toString();
$scope.outputValue   =     $scope.outputValue.replace(/,/g, "|");
$scope.outputValue   =     $scope.outputValue.replace(/[\s,]+/g, ' ');
问题在于,根据用户在文本区域内的输入,我的数组会给出类似的结果,例如(复制垂直管道分隔符):

应该是这样的:

$scope.outputValue = ["one" | "two" | "three" | "four" | "five" ];

谢谢,内纳德

使用
+
量词。读作“一个或多个”。这对于匹配和减少序列非常有用,比如挤压多个空间,您经常会看到这样的情况:

$scope.outputValue = ["one" | "two" | "three" | "four" | "five" ];

console.log('foo | bar | baz | | | | | | | | | | | | | | | | | | | | | | | | | | | |')。替换(/\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\JavaScript@Tibrogargan我不认为这会达到预期的效果;当有两个以上的管道时,它会留下额外的
|
。@DaveNewton捕捉得很好。未能正确阅读问题
.replace(/\\\\\\\+/g,“|”)
@Tibrogargan我认为这里不需要指定两个管道;用一个替换一个或多个,不是吗?我相信正确的元语法变量应该是plugh,然后是xyzy:D(嗯,虽然我不同意:(@DaveNewton哇,太好了,我以前没有见过大多数使用过的。我一直被动地收集它们,因为它们非常有用,但我真的不知道它们对我来说有多特别和珍贵。我宣布“asdf”作为这个群体中的一个非常大的成员。因为我不会就此提出问题,你们能简单地告诉我为什么元语法变量对你们如此重要吗?:p我从来没有使用过它,我不明白它的目的,即使我读过维基百科关于它的文章。它只是占位符,对吗?你们最好使用真正的变量名lol!@antoni很多都是这样对于歇斯底里的理由(也值得一看)-它们是计算历史的一部分:)明显的占位符有着合法的用途;它们明确地提醒我们,所讨论的内容的细节并不依赖于领域或业务知识,显然是通用的参考。@Filipdanović是的,它们很有趣!