ホームページ >ウェブフロントエンド >jsチュートリアル >正規表現は、JavaScript のデータ フィールドにカンマを含む CSV 文字列を解析する際の問題をどのように解決できるでしょうか?

正規表現は、JavaScript のデータ フィールドにカンマを含む CSV 文字列を解析する際の問題をどのように解決できるでしょうか?

DDD
DDDオリジナル
2024-12-07 04:14:10198ブラウズ

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

JavaScript で解析可能な CSV 文字列

データ内のカンマを含む CSV の解析

この状況では、引用符内のカンマを区別するソリューションが必要です。これらの区切り値。正規表現は、このタスクに最適なツールです。これにアプローチする方法は次のとおりです:

正規表現ソリューション

  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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。