我有一个字符串说:
var currentLabel = "Uploading file... 0%"
这是上传开始时的初始状态,我需要在操作运行时更新它。我需要取0并用一个新数字替换它,但是我不能只获得一个子串,因为它最终会变为2位,长度会改变......
如果长度不变,我可以这样做:
var newLabel = currentLabel.substring(0, currentLabel.length - 2) + percent + "%";
我猜我需要一个正则表达式或其他任何方式。
答案 0 :(得分:1)
您可以使用indexOf
和substring
的组合来完成此操作,但正则表达式确实可以使其更简单:
newLabel = currentLabel.replace(/\d+$/, percent + "%");
字符串中没有其他数字,对吧?
你也可以再次写字符串..它可能比正则表达式更便宜。
答案 1 :(得分:0)
Certianally可以使用正则表达式和简单的替换
([\S\s]+?[\d]+([%])
替换字符串
$1 "new percentage" $2
答案 2 :(得分:0)
/.*([0-9] +)\%/ 这样的东西会给你数字。但实际上,要做到这一点还有很长的路要走。
答案 3 :(得分:0)
在这种情况下你真的不需要正则表达式:
var currentLabel = "Uploading file... ";
var newLabel = currentLabel + percent + "%";