Там не, или просмотра назад встроенные модификаторы в JavaScript RE. Поэтому мы перемещаем (?i)
в конец регулярного выражения: //i
. Просмотра назад немного сложнее, чтобы имитировать, поэтому его легче просто принять тот факт, что она не может быть сделано, и вместо того, чтобы использовать захват группы, чтобы найти то, что вам нужно:
var pattern = />([^<]+)<\/TD>/i;
var result = str.match(pattern);
// the match you want is in result[1]
EDIT: Кажется, работает штраф на обеих строках вы обеспечили:
"<td class='asd'>sd</td>".match(/>([^<]+)<\/TD>/i)
// [">sd</td>", "sd"]
Если вы хотите, чтобы соответствовать несколько элементов в одной и той же строки, вы можете
аб
использовать replace()
метод что-то вроде этого:
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"]
Вы должны принять ответ на свои предыдущие вопросы. – Alsciende
Вы пытаетесь разобрать HTML с регулярными выражениями. Пожалуйста, не делайте этого, это неправильно, опасно и совершенно ненужно. – Tomalak
@ Alsciende pls поможет вашему коду не работать – Chicharito