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

时间:2016-11-09 00:51:13

标签: javascript regex

是否有一个很好的RegExp用于将一个字符串中的2个或更多个竖线字符(“||”)替换为一个竖线(“|”)?我正在使用AngularJS 1.5.7。 $ scope.outputValue是一个数组,我将其转换为字符串,然后实现2个不同的RegExps:

$scope.outputValue   =     $scope.outputValue.toString();
$scope.outputValue   =     $scope.outputValue.replace(/,/g, "|");
$scope.outputValue   =     $scope.outputValue.replace(/[\s,]+/g, ' ');

问题在于,根据textarea内部的用户输入,我的数组会给出类似的结果(重复垂直管道分隔符):

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

它应该是这样的:

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

谢谢,Nenad

1 个答案:

答案 0 :(得分:0)

使用+量词。将其读作“一个或多个”。它非常适合匹配和减少序列,比如压缩多个空格,你经常会看到这样的东西:

console.log('foo|bar||baz|||quux||||norf|||||'.replace(/\|+/g, '|'))