如何从JavaScript中的字符串获取最后一个数字

时间:2018-11-13 15:29:20

标签: javascript

试图从javascript中的字符串中获取最后一位数字。

请注意,我不是要获取字符串的最后一个字符,而是最后一个数字作为数字

例如:

lastDigit("MA01A"); // returns 1
lastDigit("MA01"); // returns 1
lastDigit("1"); // returns 1
lastDigit("1MABC"); // returns 1
lastDigit("MABC"); // returns undefined

我如何得到它?

4 个答案:

答案 0 :(得分:1)

假设字符串的末尾可能包含非数字字符,则可以反向遍历字符串并返回遇到的第一个数字,否则返回null

function getLatestDigit(text) {
  for (var i = text.length - 1; i >= 0; i--) {
    if (!isNaN(text.charAt(i))) return text.charAt(i);
  }
  return null;
}

console.log(getLatestDigit("MA01"));
console.log(getLatestDigit("MA12aaaaa"));
console.log(getLatestDigit("NoNumbersHere"));

答案 1 :(得分:1)

这里是不使用for循环的版本。有两个版本:一个短版本,返回一个字符串,一个稍长版本,返回一个数字,以防您也需要。

function lastDigit(str) {
  // Remove all non-digits from the string and return the last
  // character
  return str.replace(/[^\d]*/g, '').slice(-1) || undefined;
}

function lastDigitAsNumber(str) {
  // Remove all non-digits from the string
  const digit = str.replace(/[^\d]*/g, '').slice(-1)
  // Parse the last digit as number (this will be 0 for ''
  const number = Number(digit)
  // Return accordingly
  return digit.length > 0 ? number : undefined;
}

console.log(lastDigit("MA01A")); // returns '1'
console.log(lastDigit("MA01")); // returns '1'
console.log(lastDigit("1")); // returns '1'
console.log(lastDigit("1MABC")); // returns '1'
console.log(lastDigit("MABC")); // returns undefined

console.log(lastDigitAsNumber("MA01A")); // returns 1
console.log(lastDigitAsNumber("MA01")); // returns 1
console.log(lastDigitAsNumber("1")); // returns 1
console.log(lastDigitAsNumber("1MABC")); // returns 1
console.log(lastDigitAsNumber("MABC")); // returns undefined

答案 2 :(得分:0)

尝试一下。...

var source="MA01";

var lastNum = source.replace(/.*?(\d+)[^\d]*$/,'$1')

alert(lastNum);

答案 3 :(得分:0)

var source = "MA01",
    lastNum = source.match(/(\d+)(?!.*\d)/)[0];

alert(lastNum);