gpt4 book ai didi

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

转载 作者:数据小太阳 更新时间:2023-10-29 05:46:32 24 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/30360439/

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