gpt4 book ai didi

javascript - 为什么正则表达式不匹配所有数字而不是匹配字符串末尾的数字?

转载 作者:行者123 更新时间:2023-11-30 07:57:21 24 4
gpt4 key购买 nike

我只是在寻找一个正则表达式来观察给定字符串中的最后一个数字(\d 或 [0-9]),字符串如下:

var str = "7-Dec-1985"
var str = "#scrollto-section-4"

当然,我在 SO HERE 上的以下线程中找到了答案

我正在使用如下正则表达式:

str.match(/\d+$/)

工作正常,没有问题,现在我使用以下工具分析正则表达式 HERE ,

\d+ //matches  greedy 0 to as many 
$ - specifies that the search should start at the end of the string

但是为什么在下面的例子中上面的正则表达式:

var str = "7-Dec-1985"

只匹配 1985 为什么不匹配 71985

最佳答案

因为 $ 表示“输入结束”(如果指定了 m 标志,则表示“行结束或输入结束”),而 \d+ 表示一系列连续 数字(不是与其他东西混合的数字)。所以 \d+$ 的意思是“结束前的一系列连续数字。”

如果你想匹配任何地方,去掉$。此外,如果你想匹配多次,你需要一个 g ("global") 标记。

示例 -- 您的原始示例:

var str = "7-Dec-1985";
document.body.innerHTML = JSON.stringify(str.match(/\d+$/));

没有$,但没有g:

var str = "7-Dec-1985";
document.body.innerHTML = JSON.stringify(str.match(/\d+/));

没有 $ 而有 g:

var str = "7-Dec-1985";
document.body.innerHTML = JSON.stringify(str.match(/\d+/g));

关于javascript - 为什么正则表达式不匹配所有数字而不是匹配字符串末尾的数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36630703/

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