Il n'y a pas, ou des modificateurs d'assertions arrières inline en JavaScript RE. Donc, nous passons le (?i)
à la fin de l'expression rationnelle: //i
. Le lookbehind est un peu plus difficile à imiter, donc il est plus facile de simplement accepter le fait qu'il ne peut se faire et au lieu d'utiliser un groupe de capture pour trouver ce dont vous avez besoin:
var pattern = />([^<]+)<\/TD>/i;
var result = str.match(pattern);
// the match you want is in result[1]
EDIT: semble fonctionner bien sur les deux chaînes que vous avez fournies:
"<td class='asd'>sd</td>".match(/>([^<]+)<\/TD>/i)
// [">sd</td>", "sd"]
Si vous voulez faire correspondre plusieurs éléments dans la même chaîne que vous pouvez
ab
utiliser la méthode replace()
quelque chose comme ceci:
var textInTds = []; // empty array we will fill up:
"<td>bla1</td><td class='asd'>sd</td>".replace(/>([^<]+)<\/TD>/ig, function($0, $1) {
textInTds.push($1); // push onto the array
return $0; // return the original text so that it doesn't destroy the string
});
// textInTds -> ["bla1", "sd"]
Vous devez accepter une réponse à vos questions précédentes. – Alsciende
Vous essayez d'analyser HTML avec des expressions régulières. S'il vous plaît ne faites pas cela, c'est faux, dangereux et complètement inutile. – Tomalak
@Alsciende pls aider votre code ne fonctionne pas – Chicharito