2010-04-10 6 views
0

j'ai une table avec le code comme ceci:texte remove entre parenthèses et les parenthèses en utilisant .filter() ou .slice()

<tr> 
       <th scope="row">5-17</th> 
       <td>23.6 (22.0-24.0)</td> 
       <td>18.0 (17-20.0)</td> 
      </tr> 
      <tr> 
       <th scope="row">Total 0-17</th> 
       <td>20.6 (8-15.6)</td> 
       <td>16.1 (22.2-24.0)</td> 
      </tr> 

je suis en utilisant la fonction suivante pour trouver le contenu des cellules de table et l'amener dans un tableau:

var l1 = $('#datatable td:nth-child(2)').map(function() { 
    return $(this).text(); 
    }).get(); 

l'identifiant du fragment de table est "datatable".

cela retourne correctement, mais je mets ce tableau dans jqPlot et il ne peut pas lire la substance entre les parenthèses ou les parenthèses elles-mêmes.

J'ai besoin des données pour rester dans la table cependant parce que nous montrons la table et le diagramme.

Je ne peux pas reformater (ajouter des travées autour du contenu que je veux supprimer etc.) parce que ces tables sont générées par un autre logiciel.

Je pense que ce que je dois faire est soit découper après l'espace ou utiliser une regex pour trouver et supprimer. Je ne sais pas comment procéder avec l'un ou l'autre. Merci!

Répondre

0

Vous pouvez utiliser:

return $(this).text().match(/\S+/)[0]; 

Cela ne prendra que tout au premier espace.

Dans une expression régulière:

\S signifie un caractère non-espace.
\S+ signifie une séquence d'un ou de plusieurs caractères non blancs. L'expression regex prendra autant de caractères non blancs que possible et les retournera.

Le [0] à la fin est nécessaire car la fonction match renvoie un tableau, dans ce cas constitué d'un seul élément.

Modifier: Correction d'un bug dans le code ci-dessus: il était absent [0]

+0

MERCI DE VOTRE CONFIANCE! Je savais qu'il devait y avoir quelque chose comme ça ... je ne connaissais pas assez regex. – liz

Questions connexes