如何使用.replace和match()方法javaScript

时间:2011-11-14 12:25:14

标签: javascript replace match

我需要替换从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 个答案:

答案 0 :(得分:4)

在正则表达式中使用捕获子表达式:

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

match()会返回一个数组,这就是为什么你无法在结果上调用replace - 没有Array#replace方法。

答案 1 :(得分:1)

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:", ""));

答案 2 :(得分:1)

你可以摆脱使用匹配做这样的事情......

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

答案 3 :(得分:0)

JavaScript将返回匹配数组,如果未找到匹配项,则返回null。原始代码尝试在Array的实例上调用replace方法,而不是在其中调用元素(String)。

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