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

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

此问题已在此处有答案

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

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

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

iqxoj9l9

iqxoj9l91#

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

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

你也可以在这里使用split

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

  1. var stepName = "Step-1";
  2. const splitArr = stepName.split("-")
  3. const stepNumber = parseInt(splitArr.at(-1), 10)
  4. console.log(stepNumber);
展开查看全部
cpjpxq1n

cpjpxq1n2#

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

  1. let step = "Step-500";
  2. const stepArray = step.split("-");
  3. document.getElementById("step").innerHTML = stepArray[1];
  1. <p id="step">
  2. </p>

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

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

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

展开查看全部
noj0wjuj

noj0wjuj3#

你可以用这个

  1. var stepName = "Step-1";
  2. var stepNumber = stepName.split("-")[1];
  3. console.log(Number(stepNumber));
  4. //another example
  5. var stepName = "Step-500";
  6. var stepNumber = stepName.split("-")[1];
  7. console.log(Number(stepNumber));
jc3wubiy

jc3wubiy4#

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

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

des4xlb05#

  1. var stepName = "Step-1";
  2. var stepNumber = stepName.split("-");
  3. console.log(stepNumber.length - 1);

相关问题