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

发布于 2024-12-15 12:58:17 字数 371 浏览 1 评论 0原文

我需要替换从 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"

有人可以帮助我吗?

i need to replace some data obtained from match();

This one return string that contain "Total time: 9 minutes 24 seconds"

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

but i need only "9 minutes 24 seconds", I try use:

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

but there is an error ""

".replace is not a function"

Can some one help me?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

成熟的代价 2024-12-22 12:58:18

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

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

match() 返回一个数组,这就是为什么您无法对结果调用 replace — 没有 Array#替换方法。

Use capturing sub expressions in your regex:

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

match() returns an array, which is why you can't call replace on the result — there is no Array#replace method.

_蜘蛛 2024-12-22 12:58:18
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:", ""));
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:", ""));
拥抱我好吗 2024-12-22 12:58:18

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

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

You could get rid of using match doing something like this...

var match = data.replace(/Total time: ([0-9]* minutes [0-9]* seconds)/,"$1");
单挑你×的.吻 2024-12-22 12:58:18

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

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

JavaScript will return an array of matches or null if no match is found. The original code attempts to call the replace method on an instance of an Array instead of the element (a String) within it.

var result = null;
var m = data.match(/.../);
if (m) {
  result = m[0].replace('Total time: ', '');
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文