Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/425.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript正则表达式-百分号前的数字_Javascript_Regex - Fatal编程技术网

Javascript正则表达式-百分号前的数字

Javascript正则表达式-百分号前的数字,javascript,regex,Javascript,Regex,我有一句话要说: var currentLabel = "Uploading file... 0%" 这是上传开始时的初始状态,我需要在操作运行时更新它。我需要取0并用一个新的数字替换它,但是我不能只得到一个子串,因为它最终会变为2位数,长度也会变 如果长度不变,我可以: var newLabel = currentLabel.substring(0, currentLabel.length - 2) + percent + "%"; 我想我需要一个正则表达式或其他任何方式。您可能可以使用

我有一句话要说:

 var currentLabel = "Uploading file... 0%"
这是上传开始时的初始状态,我需要在操作运行时更新它。我需要取0并用一个新的数字替换它,但是我不能只得到一个子串,因为它最终会变为2位数,长度也会变

如果长度不变,我可以:

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

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

您可能可以使用
indexOf
substring
的组合来实现它,但正则表达式确实使它更简单:

newLabel = currentLabel.replace(/\d+$/, percent + "%");
字符串中没有其他数字,对吗


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

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

([\S\s]+?[\d]+([%])
替换字符串

$1 "new percentage" $2
/.*([0-9]+)\%/
像这样的东西会告诉你号码。但实际上,要做到这一点还有很长的路要走

在这种情况下,您实际上不需要regexp:

var currentLabel = "Uploading file... ";
var newLabel = currentLabel + percent + "%";

为什么不能执行
var newLabel=“上传文件…”+百分比+“%”
var newLabel=currentLabel.replace(/\d+/,百分比)
,然后您可以将字符串指定为您喜欢的任何字符串,上面的数字只是替换了数字(只希望只有一个…)True!我最初的想法是,它会引起闪烁,但事实并非如此,所以我只是更换了它。你的正则表达式也适用。