我有一个日期格式,可以按以下格式输入:
December, 13, 2016
December , 13 , 2016
December ,13 , 2016
.
.
.
所以我尝试匹配并捕获所有这些输入事件,最终得到如下结果:
December 13 2016
我的正则表达式如下所示:
str.match([a-zA-Z]+(?: |,)*[0-9]{1,2}(?: |,)*[0-9]+$)
相信我,在发布问题之前,我曾尝试在网络上寻找解决方案,但没有成功。有什么建议如何解决这个问题吗?
最佳答案
您必须捕获要提取的部分。例如,
matches = "December ,13 , 2016".match(/([a-zA-Z]+)[ ,]*([0-9]{1,2})[ ,]*([0-9]+)$/)
console.log(matches[1] + ' ' + matches[2] + ' ' + matches[3])
// December 13 2016
([a-zA-Z]+)
捕获月份名称以匹配[1]
。([0-9]{1,2})
捕获日期。([0-9]+)
捕获年份。[ ,]*
与(?: |,)
相同,但没有使用字符类的组。
关于javascript - 非捕获组仍然捕获输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41121755/