jQuery — удалить текст после символа, разделив строку запятой

#javascript #jquery

Вопрос:

У меня есть строка:

 XXX - Test Text 1, OOO - Test Text 2, Dummy
 

Что я хочу сделать, так это вернуть эту строку как:

 XXX,OOO,Dummy
 

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

Комментарии:

1. Пожалуйста, поделитесь тем, что вы пробовали до сих пор

Ответ №1:

Это не имеет ничего общего с jQuery, это просто собственный JavaScript. Что вы могли бы сделать, это разделить строку на каждую запятую. Затем разделите каждую часть - символа и соедините все части вместе:

 parsedString = "XXX - Test Text 1, OOO - Test Text 2, Dummy".split(',')
  .map(part => part.split('-')[0].trim())
  .join(',')

console.log(parsedString); 

Ответ №2:

1) Сначала вы можете разделить строку, которая вернет массив строк

 str.split(",")
 

2) используйте reduce, чтобы получить только начальную строку из всех строк в массиве, которая возвращается с 1-го шага

3) затем соедините их с ,

 const str = "XXX - Test Text 1, OOO - Test Text 2, Dummy";
const result = str
  .split(",")
  .reduce((acc, curr) => {
    let match = curr.match(/[a-z] /i);
    if (match) acc.push(match[0]);
    return acc;
  }, [])
  .join(",");

console.log(result);