将序号字符串转换为数字

3

我想把序数字符串转换成相应的数字,例如:

  • "1st" 转换成 1
  • "2nd" 转换成 2
  • "3rd" 转换成 3

...

尝试使用以下函数,但它返回的是序数而不是数字:

function nth(n){return["st","nd","rd"][((n+90)%100-10)%10-1]||"th"}

应该是这个函数的反函数。


1
最简单的方法是打印除了尾随的st/nd/rd字符以外的所有内容,这样你只保留数字。 - Javier Larroulet
4个回答

6

just use parseInt

console.log(parseInt("1st"))


5
因为后缀的长度是固定的,所以可以删除最后两个字符。

function toNum(str) {
  return parseInt(str.substring(0, str.length - 2));
}

console.log(toNum("1st"));


3
parseInt() 会自动执行这个操作。 - Andreas

0

使用 parseInt() 简单地从字符串中提取数字值

parseInt("1st");

这将从字符串中提取一个整数 1。


0

你也可以使用函数match(...)正则表达式/[0-9]+/

console.log("3rd".match(/[0-9]+/)[0]) // -> 3
console.log("52381st".match(/[0-9]+/)[0]) // -> 52381

只需执行"3rd".match(/[0-9]+/),就会返回一个带有一些有用数据的对象,但是仅访问属性[0]将为您提供所需的输出(如果您不想像其他答案中提到的那样执行parseInt哈哈)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接