Удалить пустые, двойные qoutes, и разделить запятой - PullRequest
0 голосов
/ 14 мая 2018

Я эти данные, которые мне нужно очистить при отображении в таблице, вот вывод

"eer" "rrr" "dff" "" "" "" "" ""

Что мне нужно сделать, это удалить пустые, удалить двойные кавычки и отделить их запятой, что-то вроде

  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 голосов
/ 15 мая 2018

Вы можете заменить все последовательности " комой, а затем удалить двоеточия из начала и конца:

const str = '"eer""rrr""dff"""""""""""'
const result = `"${str}"`.replace(/""*/g, ',').slice(1, -1)
0 голосов
/ 14 мая 2018

Это должно сделать это:

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
0 голосов
/ 14 мая 2018

Для достижения ожидаемого результата используйте опцию ниже

  1. Первая запятая, разделяющая все строки
  2. Удаление пустых строк
  3. Очистка начальных и последних двойных кавычек
  4. Удаление последней запятой

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);

пример кода - https://codepen.io/nagasai/pen/BxPpoB?editors=1010

0 голосов
/ 14 мая 2018

Просто замените все кавычки запятой, а затем замените любую последовательность из нескольких запятых одной запятой.Это приведет к запятой в начале и конце строки, поэтому вы должны удалить их подстрокой.

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

console.log(replaced);
...