ホームページ >ウェブフロントエンド >jsチュートリアル >二重引用符内の内容を保持しながら、JavaScript でカンマ区切りの文字列を分割するにはどうすればよいですか?

二重引用符内の内容を保持しながら、JavaScript でカンマ区切りの文字列を分割するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-26 21:38:29265ブラウズ

How to Split a Comma-Separated String in JavaScript While Preserving Contents Within Double Quotes?

JavaScript で二重引用符の内容を保持しながら文字列をカンマで分割する

JavaScript でカンマ区切りの文字列を扱う場合、次の処理が重要です。特定のセクションを囲むために二重引用符が使用されている状況。これを無視すると、意図しない分割が発生する可能性があります。

問題:

カンマ区切りの文字列が与えられた場合、目的は二重引用符で囲まれた内容を保持する配列を取得することです。 。たとえば、「a, b, c, "d, e, f", g, h」を 6 つの要素の配列に変換します: ["a", "b", "c", "d, e, f" 、"g"、"h"]。

間違ったアプローチ:

/, |"[^"] のような正規表現を使用した split() メソッドの使用"/g は文字列を誤って分割し、二重引用符内の内容も抽出します。

正しい解決策:

このシナリオを正しく処理するには、より調整された正規表現式が必要です:

/(".*?"|[^",\s]+)(?=\s*,|\s*$)/g

説明:

  • (".*?"): 間に任意の数の文字がある二重引用符と一致します。 .
  • |: 「or」条件を通知します。
  • [^",s] : 1 つ以上の二重引用符、コンマ、スペース以外の文字と一致します。
  • (?=s*,|s*$): 一致の後にカンマと空白、または文字列の末尾が続くことを保証する肯定的な先読みアサーション。

使用法:

const str = 'a, b, c, "d, e, f", g, h';
const arr = str.match(/(".*?"|[^",\s]+)(?=\s*,|\s*$)/g);

for (let i = 0; i < arr.length; i++) {
  console.log(`arr[${i}] = ${arr[i]}`);
}

出力:

arr[0] = a
arr[1] = b
arr[2] = c
arr[3] = "d, e, f"
arr[4] = g
arr[5] = h

以上が二重引用符内の内容を保持しながら、JavaScript でカンマ区切りの文字列を分割するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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