gpt4 book ai didi

javascript - 为什么 String.match(/\d*/) 返回空字符串?

转载 作者:行者123 更新时间:2023-11-30 16:27:33 25 4
gpt4 key购买 nike

有人可以帮助我理解为什么使用\d* 返回一个包含空字符串的数组,而使用\d+ 返回 ["100"] (如预期)。我明白为什么\d+ 有效,但不明白为什么\d* 不起作用。使用 * 是否会导致它返回零长度匹配,这到底是如何工作的?

var str = 'one to 100';
var regex = /\d*/;
console.log(str.match(regex));
// [""]

最佳答案

请记住,match 正在寻找它能找到的与给定正则表达式匹配的第一个子字符串。

* 表示可能有零个或多个数字,因此 \d* 表示您正在查找包含零个或多个数字的字符串。

如果您的输入字符串以数字开头,则将匹配整个数字。

"5 to 100".match(/\d*/); // "5"
"5 to 100".match(/\d+/); // "5"

但是由于第一个字符是非数字,match() 认为字符串的开头(没有字符)与正则表达式匹配。

由于您的字符串不以任何数字开头,因此空字符串是输入中与该正则表达式匹配的第一个子字符串。

关于javascript - 为什么 String.match(/\d*/) 返回空字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52691329/

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