Diviser une chaîne par virgules et ignorer celles entre guillemets doubles (JavaScript)
Lorsque vous travaillez avec des chaînes, il peut être nécessaire de les diviser dans un tableau d'éléments basé sur un délimiteur spécifié. Cependant, le délimiteur apparaît parfois entre guillemets doubles, qui doivent être ignorés lors du fractionnement.
Considérez la chaîne suivante qui doit être convertie en un tableau de six éléments : "a, b, c, "d, e, f", g, h". L'objectif est de séparer chaque élément tout en ignorant les virgules entre guillemets doubles.
Une approche consiste à utiliser des expressions régulières :
<code class="javascript">var str = 'a, b, c, "d, e, f", g, h'; var arr = str.match(/(".*?"|[^",\s]+)(?=\s*,|\s*$)/g);</code>
Voici une ventilation de l'expression régulière :
( ".*?" # double quotes + anything but double quotes + double quotes | # OR [^",\s]+ # 1 or more characters excl. double quotes, comma or spaces of any kind ) (?= # FOLLOWED BY \s*, # 0 or more empty spaces and a comma | # OR \s*$ # 0 or more empty spaces and nothing else (end of string) )
Cette expression régulière capturera soit les chaînes entre guillemets, soit tout autre caractère qui n'est pas des virgules ou des espaces, empêchant ainsi la division des virgules entre guillemets.
Le tableau arr contiendra les éléments divisés, qui peut ensuite être enregistré ou utilisé pour un traitement ultérieur.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!