我只是在寻找一个正则表达式,它将监视给定字符串中的最后一个数字(\ 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
(“全局”)标志。
示例-您的原始照片:
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));