Javascript获取数字的前两位数字

标签 javascript regex

如何在 JavaScript 中使用正则表达式将数字的第一个和下一个数字作为数组获取?
我正在这样做:

let foo = '1234567'; 

let op = foo.match(/^\d{1}|\d{2}/g)

console.log(op)
但这即使在第三个数字之后也会输出所有内容。
我试图让输出为
[1,23]

最佳答案

您可以将前两个数字捕获到单独的捕获组中:

let foo = '1234567'; 
let op = foo.match(/^(\d)(\d{2})/);
if (op) {
  console.log(op.slice(1));
}

这里,
  • ^ - 匹配字符串
  • 的开头
  • (\d) - 将一个数字捕获到组 1
  • (\d{2}) - 将第二个和第三个数字捕获到第 2 组中。

  • regex demo
    在访问组值之前,您应该检查是否存在匹配项,因此,您可以使用类似 if (op) {...} 的检查。 .slice(1) 用于去除数组中的第一个值,它始终是整个匹配值。
    如果您出于某种原因需要将正则表达式与交替和 g 修饰符一起使用,则只能使其与现在在大多数 JavaScript 环境中可用的后向一起工作:

    console.log( '1234567'.match(/^\d|(?<=^\d)\d{2}/g) );

    这里,
  • ^\d - 匹配字符串
  • 开头的数字
  • | - 或
  • (?<=^\d)\d{2} - 两个数字,在字符串开头有一个数字。

  • this regex demo

    关于Javascript获取数字的前两位数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62958130/

    相关文章:

    javascript - 在 react 组件中,一旦使用 redux 从另一个组件更改了状态,如何从状态中获取最新数据?

    javascript - 使用jquery从YouTube提要xml抓取视频ID

    javascript - node.js 中的 Mongo 在 $in 或类似的东西中添加一个 $gte/$lt

    正则表达式匹配到带有通配符的行尾

    javascript - JavaScript/jQuery 中优雅的多个字符替换

    正则表达式匹配一组以预定义字符开头的数字中的第二个数字

    javascript - Meteor:如何在Meteor中初始化noUiSlider?

    javascript - 英国工资输入正则表达式javascript

    PHP删除文本文件中的最后一个空行

    javascript - 如何为流程图正确显示大型数据集图例?