gpt4 book ai didi

javascript - 有人可以解释一下/^(\-|\+)?([0-9]+|Infinity)$/是什么吗?

转载 作者:数据小太阳 更新时间:2023-10-29 05:57:26 25 4
gpt4 key购买 nike

/^(\-|\+)?([0-9]+|Infinity)$/

当我想过滤东西时,我已经多次看到这种情况。有很多变体,但它通常总是以 (/然后是某些东西开头。最近我发现这是一个帮助解析字符串并确保其中只有数字的建议。在 Mozilla 的 RegExp js 页面上,我找到了一些其他运算符,但它几乎不包括以上所有内容。

最佳答案

这是一个正则表达式。您粘贴的那个会匹配一个正/负整数,或者匹配单词 infinity。简而言之,正则表达式是:

A regular expression (regex or regexp for short) is a special text string for describing a search pattern. You can think of regular expressions as wildcards on steroids.

http://www.regular-expressions.info/

您经常看到正则表达式被写成/expression_here/,因为在许多编程语言中,这些斜杠是开发人员构建正则表达式对象的简写方式。

您可以创建一个简单的表达式来匹配数字,例如:

/^[0-9]*$/.test('44') // returns true

/^[0-9]*$/.test('asdasd') // returns false

这些表达式和您粘贴的表达式一样被解析并变成小机器(称为 finite state machines )。机器的全部目的是确定一个字符串是否匹配机器表示的表达式,或者它是否不匹配。然后你可以将一个字符串输入这样的机器,它会把答案吐给你。

在上面的示例中,我们将字符串 44asdasd 提供给正则表达式 /^[0-9]*$/使用 test 方法,它返回 true 因为 44asdasd< 的表达式和 false 匹配 因为不匹配。

我们也可以分解您在帖子中包含的正则表达式:

^ 表示正则表达式必须从字符串的开头开始匹配

(\-|\+)表示从字符串开头匹配-+,问号表示这部分是可选的

[0-9]+|Infinity 表示“匹配一个或多个从 0 到 9 的数字”,或者 (|) 匹配文本 Infinity

$ 意思是,“然后要求字符串在这里结束”

关于javascript - 有人可以解释一下/^(\-|\+)?([0-9]+|Infinity)$/是什么吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33793532/

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