JavaScript RegEx для извлечения значения из тега HTML - PullRequest
1 голос
/ 12 сентября 2011
<font color="green">+4,13</font>% 

Я знаю, что я не должен использовать регулярные выражения для этого, но это единственный случай, когда мой единственный HTML-код таков ...

как я могу получить «4,13» из приведенной выше строки?

EDIT

Контекст:

Я сортирую таблицу с помощью jQuery TableSorter.Столбец содержит данные в формате html, и я не могу его изменить.Пользовательский парсер, который я пишу, имеет функцию форматирования, которую я в настоящее время использую для управления валютой, процентами и т. Д. ...

Теперь я хочу с помощью регулярных выражений проверить, подходит ли строка, которая приходит кменя это строка.

format: function(s) {
    console.log(s);
    var stripped = s.replace("<font>","")
                     .replace("</font>", "");
    return jQuery.tablesorter.formatFloat(stripped);
}

Ответы [ 2 ]

1 голос
/ 12 сентября 2011

Это должно работать для вашего конкретного примера -

var tagtext = '<font color="green">+0.00</font>%';
var keepplusorminus = false;
var myregexp = keepplusorminus ? /[-\+,\.0-9]+/ : /[,\.0-9]+/;
var match = myregexp.exec(tagtext);
if (match != null) {
    result = match[0];
} else {
    result = "";
}
alert(result);

Рабочая демонстрация - http://jsfiddle.net/ipr101/LHBp7/

0 голосов
/ 12 сентября 2011

Редактировать

Если вы просто хотите сопоставить цифры

[+-]?\d+(?:[,.]\d+)?

См. здесь, на Regexr

Соответствует необязательному + или -, затем хотя бы одной цифре, а затем необязательной дроби с. или, как разделитель дроби.

/ Edit

Попробуйте что-то вроде этого

<font color="green">([^<]+)

Затем вы найдете значение "+4,13" в группе захвата 1.

См. здесь на Regexr

Если вы хотите исключить +, добавьте его (возможно, необязательно) перед группой захвата

<font color="green">\+?([^<]+)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...