> 웹 프론트엔드 > JS 튜토리얼 > 정규식은 JavaScript의 데이터 필드에 쉼표가 있는 CSV 문자열을 구문 분석하는 문제를 어떻게 해결할 수 있습니까?

정규식은 JavaScript의 데이터 필드에 쉼표가 있는 CSV 문자열을 구문 분석하는 문제를 어떻게 해결할 수 있습니까?

DDD
풀어 주다: 2024-12-07 04:14:10
원래의
202명이 탐색했습니다.

How Can Regular Expressions Solve the Problem of Parsing CSV Strings with Commas in Data Fields in JavaScript?

JavaScript에서 구문 분석 가능한 CSV 문자열

데이터에서 쉼표로 CSV 구문 분석

이런 상황에서는 따옴표 안의 쉼표를 구분하는 솔루션이 필요합니다. 가치를 분리하는 것입니다. 정규 표현식은 이 작업에 이상적인 도구입니다. 이에 접근하는 방법은 다음과 같습니다.

Regex 솔루션

  1. CSV 문자열 구조 정의: 인용 문자열을 포함하여 유효한 CSV 문자열의 특성을 결정합니다. 이스케이프 문자 및 데이터 형식.
  2. CSV 유효성 검사를 위한 정규식: 만들기 주어진 문자열이 이러한 기준을 충족하는지 확인하는 정규식.
  3. 값 추출 정규식: 인용된 문자열과 인용되지 않은 문자열을 고려하여 유효한 CSV 문자열에서 개별 값을 일치시키고 추출하는 정규식을 구성합니다. 후행 commas.

구현

// Regex to validate a CSV string
const re_valid = /^\s*(?:'[^'\]*(?:\[\S\s][^'\]*)*'|"[^"\]*(?:\[\S\s][^"\]*)*"|[^,'"\s\]*(?:\s+[^,'"\s\]+)*)\s*(?:,\s*(?:'[^'\]*(?:\[\S\s][^'\]*)*'|"[^"\]*(?:\[\S\s][^"\]*)*"|[^,'"\s\]*(?:\s+[^,'"\s\]+)*)\s*)*$/

// Regex to parse one value from a valid CSV string
const re_value = /(?!\s*$)\s*(?:'([^'\]*(?:\[\S\s][^'\]*)*)'|"([^"\]*(?:\[\S\s][^"\]*)*)"|([^,'"\s\]*(?:\s+[^,'"\s\]+)*))\s*(?:,|$)/g

// Function to parse CSV string into array
const CSVtoArray = (text) => {
  // Validate CSV string
  if (!re_valid.test(text)) return null;

  const values = [];

  text.replace(re_value, (m0, m1, m2, m3) => {
    // Handle single-quoted values
    if (m1 !== undefined) values.push(m1.replace(/\'/g, "'"));

    // Handle double-quoted values
    else if (m2 !== undefined) values.push(m2.replace(/\"/g, '"'));

    // Handle unquoted values
    else if (m3 !== undefined) values.push(m3);

    return '';
  });

  // Handle special case of empty last value
  if (/,\s*$/.test(text)) values.push('');

  return values;
};
로그인 후 복사

사용 예

// Sample CSV string with commas in data
const csvString = "'string, with comma', 23, 'lala'";

// Parse the CSV string into an array of values
const values = CSVtoArray(csvString);

console.log(values); // ['string, with comma', '23', 'lala']
로그인 후 복사

이 접근 방식은 CSV 문자열을 효과적으로 구문 분석하여 인용된 값의 무결성을 유지하고 쉼표를 올바르게 처리합니다. 데이터 필드 내. 정규식을 조정하여 특정 CSV 문자열 변형 처리 또는 형식 요구 사항을 맞춤설정할 수 있습니다.

위 내용은 정규식은 JavaScript의 데이터 필드에 쉼표가 있는 CSV 문자열을 구문 분석하는 문제를 어떻게 해결할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿