ホームページ >ウェブフロントエンド >jsチュートリアル >正規表現は、JavaScript のデータ フィールドにカンマを含む CSV 文字列を解析する際の問題をどのように解決できるでしょうか?
この状況では、引用符内のカンマを区別するソリューションが必要です。これらの区切り値。正規表現は、このタスクに最適なツールです。これにアプローチする方法は次のとおりです:
// 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 サイトの他の関連記事を参照してください。