gpt4 book ai didi

javascript - 使用 javascript RegExp 获取数字,最少 2 位数字,有时 3 位数字

转载 作者:行者123 更新时间:2023-11-28 06:06:51 25 4
gpt4 key购买 nike

如何从字符串中获取指定数量的数字?

例如:

The random number = 0.87934738749

我需要的是 0.87,没有四舍五入,只是 chop 。

唯一需要注意的是,我想使用 RegExp 来执行此操作,我知道如何使用 Math.pow 和 Math.floor 以及其他方法来执行此操作,我正在尝试更好地理解正则表达式。

到目前为止,我遇到的例子都令人困惑,正则表达式不是我的菜,长度至少是 2 位数字,但在某些情况下,它需要是 3 位数字,这就是我忘记在原始内容中添加的内容发布。

所以尝试:-

x = String(numb).match( new RegExp("/\d+(\.\d{1,"+p+"})?/") )[0];

错误无法读取 null 的属性“0”,或者如果我去掉末尾的 [0],则返回 null

最佳答案

从上面关于精度(三位数的情况)的评论来看,我认为正确的答案可能是这个:

var rndm = 0.87934738749;
var precision = 3;

x = String(rndm).match(new RegExp("(?=(\\d+\\.\\d{2,"+precision+"}))"));

alert(x);

精度为 4 的示例:https://jsfiddle.net/edz4crc8/

请注意,x 将包含结果(在上述情况下为 0.879),正则表达式实际上是:

(?=(\d+\.\d{2,number}))
  • (?= 断言正则表达式可以匹配
  • \d+ 匹配 1 到无限数字 ([0-9])
  • 。字面匹配 . (此外,如果需要,您可以添加逗号规则)
  • \d{2,number} 匹配 2 到 number 次之间的任何数字,其中 number 是上述情况中变量 precision 给出的精度。

您的错误可能主要与转义正则表达式本身有关,但无论如何,在我看来,对于这种情况最好使用断言。

关于javascript - 使用 javascript RegExp 获取数字,最少 2 位数字,有时 3 位数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36775501/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com