regex 如何使用JavaScript [duplicate]从字符串“Step-1”中获取数字

dsf9zpds  于 2023-06-25  发布在  Java
关注(0)|答案(5)|浏览(112)

此问题已在此处有答案

How can I extract a number from a string in JavaScript?(27回答)
13天前关闭。
我有第一步第二步等字符串。我只想得到号码。怎么办?
我的解决方案:

var stepName = "Step-1";
var stepNumber = Integer.Parse(stepName[5]);

console.log(stepNumber);

但这不是好的解决方案,因为stepName可以是“Step-500”。请给我一个方法来获得数字后“-”

iqxoj9l9

iqxoj9l91#

您可以先使用match,然后再使用parseInt来获取编号

var stepName = "Step-1";
const match = stepName.match(/\d+$/);
if(match && match.length) {
    const stepNumber = parseInt(match[0], 10)
    console.log(stepNumber);
}

你也可以在这里使用split

var stepName = "Step-1";
const splitArr = stepName.split("-")
const stepNumber = parseInt(splitArr[splitArr.length - 1], 10)
console.log(stepNumber);

var stepName = "Step-1";
const splitArr = stepName.split("-")
const stepNumber = parseInt(splitArr.at(-1), 10)
console.log(stepNumber);
cpjpxq1n

cpjpxq1n2#

我认为最好的解决方案不是正则表达式。如果你的文本格式是一个常量"Step-1",你只需要替换1 - 1********中的数字。你可以把它们拆分成一个数组,然后得到第二个数组。

let step = "Step-500";
const stepArray = step.split("-");

document.getElementById("step").innerHTML = stepArray[1];
<p id="step">

</p>

代码的作用是把字符串一分为二,然后给它分配一个数组

stepArray[0] = "step"
stepArray[1] = "500"

PS.但同样,这只会在你有一个常量格式的变量时起作用。例如“$var1-$var2”

noj0wjuj

noj0wjuj3#

你可以用这个

var stepName = "Step-1";
var stepNumber = stepName.split("-")[1];

console.log(Number(stepNumber));

//another example
var stepName = "Step-500";
var stepNumber = stepName.split("-")[1];

console.log(Number(stepNumber));
jc3wubiy

jc3wubiy4#

你也可以用replace函数来做,试试下面的代码

var stepName = "Step-1";
var stepNumber = parseInt(stepName.replace("Step-", ""));
console.log(stepNumber);
des4xlb0

des4xlb05#

var stepName = "Step-1";
var stepNumber = stepName.split("-");

console.log(stepNumber.length - 1);

相关问题