как использовать .replace с методом match () javaScript - PullRequest
2 голосов
/ 14 ноября 2011

мне нужно заменить некоторые данные, полученные из match ();

Эта строка возврата содержит «Общее время: 9 минут 24 секунды»

data.match(/Total time: [0-9]* minutes [0-9]* seconds/);

, но мне нужно только »9 минут 24 секунды ", я пытаюсь использовать:

data.match(/Total time: [0-9]* minutes [0-9]* seconds/).replace("Total time:", "");

, но есть ошибка" "

".replace is not a function"

Может ли кто-нибудь помочь мне?

Ответы [ 4 ]

4 голосов
/ 14 ноября 2011

Используйте подвыражения в вашем регулярном выражении:

var match = data.match(/Total time: ([0-9]* minutes [0-9]* seconds)/);
alert(match[1]);

match() возвращает массив, поэтому вы не можете вызвать replace для результата - метода Array#replace нет.

1 голос
/ 14 ноября 2011

Вы можете избавиться от использования match, сделав что-то вроде этого ...

var match = data.replace(/Total time: ([0-9]* minutes [0-9]* seconds)/,"$1");
1 голос
/ 14 ноября 2011
data = 'Total time: 15 minutes 30 seconds';
response = data.match(/Total time: [0-9]* minutes [0-9]* seconds/);
response = response[0];
alert(response.replace("Total time:", ""));
0 голосов
/ 14 ноября 2011

JavaScript вернет массив совпадений или ноль, если совпадений не найдено. Исходный код пытается вызвать метод replace для экземпляра массива вместо элемента (строки) внутри него.

var result = null;
var m = data.match(/.../);
if (m) {
  result = m[0].replace('Total time: ', '');
}
...