0

我有一个字符串说:

 var currentLabel = "Uploading file... 0%"

这是上传开始时的初始状态,我需要在操作运行时对其进行更新。我需要取那个 0 并用一个新数字替换它,但是我不能只得到一个子字符串,因为它最终会变成 2 位数字并且长度会改变......

如果长度是恒定的,我可以这样做:

var newLabel = currentLabel.substring(0, currentLabel.length - 2) + percent + "%";

我猜我需要一个正则表达式或任何其他方式。

4

4 回答 4

1

您可能可以使用indexOfand的组合来做到这一点substring,但正则表达式确实使它更简单:

newLabel = currentLabel.replace(/\d+$/, percent + "%");

字符串中没有其他数字,对吗?

您也可以再次编写字符串.. 它可能比正则表达式更便宜。

于 2013-02-08T04:16:07.483 回答
0

当然可以通过正则表达式和简单的替换来完成

([\S\s]+?[\d]+([%])

替换字符串

$1 "new percentage" $2
于 2013-02-08T04:16:16.147 回答
0

/.*([0-9]+)\%/ 这样的东西会给你这个数字。但实际上,要做到这一点还有很长的路要走。

于 2013-02-08T04:17:15.250 回答
0

在这种情况下,你真的不需要正则表达式:

var currentLabel = "Uploading file... ";
var newLabel = currentLabel + percent + "%";
于 2013-02-08T04:21:24.637 回答