删除空的双qoutes,并用逗号分隔

时间:2018-05-14 14:47:02

标签: javascript angular ecmascript-6 angular-pipe

我在表中显示时需要清理的数据,这是输出

  

“EER” “RRR”, “DFF” “” “” “” “” “”

我需要做的是删除空,删除双qoutes,并用逗号分隔,如

  err,rrr,dff

我试过

import { Pipe, PipeTransform } from '@angular/core';

@Pipe({
   name: 'pickups'
})
export class PickupPipe implements PipeTransform {
  transform(value: string, args?: any) {
      if (!value) {
          return null;
       } else {
         return value.replace(/"/g, ",");
     }
 }
}

现在使用

   <span *ngFor="let pickup of row.pickups">{{pickup.pickup_facility | pickups }}</span>

它确实删除了qoutes并且空了但是没有用逗号分隔,这是结果

  

eerrrrdff

4 个答案:

答案 0 :(得分:0)

只需用逗号替换所有引号,然后用一个逗号替换多个逗号的任何序列。这将在字符串的开头和结尾处生成逗号,因此您将子字符串删除。

&#13;
&#13;
let text = `"eer""rrr""dff"""""""""""`
let replaced = text.replace(/"/g, ',').replace(/,+/g, ',')
replaced = replaced.substring(1, replaced.length - 1)

console.log(replaced);
&#13;
&#13;
&#13;

答案 1 :(得分:0)

这应该这样做:

const text = '"eer""rrr""dff"""""""""""'
const result = text.match(/"[^"]*"/g)
                   .map(x => x.slice(1, -1)) // remove quotes
                   .filter(Boolean) // remove empty
                   .join(',') // separate with comma

答案 2 :(得分:0)

要达到预期效果,请使用以下选项

  1. 分隔所有字符串的第一个逗号
  2. 删除空字符串
  3. 清除初始和最后双引号
  4. 删除最后一个逗号
  5. &#13;
    &#13;
    var test = '"eer""rrr""dff"""""""""""'
               .replace(/""/g,',')  //first comma separating all strings 
               .replace(/,,/g,'')   // removing empty strings
               .replace(/"/g,'')    // clearing initial and last double quotes
               .slice(0, -1);;      // removing last comma
    
    console.log(test);
    &#13;
    &#13;
    &#13;

    代码示例 - https://codepen.io/nagasai/pen/BxPpoB?editors=1010

答案 3 :(得分:0)

您可以用昏迷替换"的所有序列,然后从开头和结尾删除冒号:

const str = '"eer""rrr""dff"""""""""""'
const result = `"${str}"`.replace(/""*/g, ',').slice(1, -1)