我在正则表达式中非常初学者所以我有一段这个段落包含两个必需的数字第一个串行[fp,sp,tp,fop]让我们假设长度为
fp = 3,sp = 2或1,tp = 3 TO 5,fop = 2 TO 5
并且所有这些都将被数字分隔 - 将像这样
432-32-2356-12
,日期时间就像
23-AUG-2017
例如,这是一个包含我的要求的文本
大家好今天23-aug-2017我加入了stackoverflow社区 这个序列号432-32-2356-12
然后如何找到我尝试过的两个数字,但没有得到正确的结果,这是我在JavaScript /(\d[\d\.]*)/g
中的规范
它也是我的代码
var serial=p.match(/(\d[\d\.]*)/g);
var date=p.match(/(\d[\d\.]*)/g);
请在纯javascript中提供任何帮助或建议
答案 0 :(得分:0)
在你的日期正则表达式中,你完全忽略了字符串部分。
var text = 'Hello every one today 23-aug-2017 I joined stackoverflow community via this serial 432-32-2356-12';
var re1 = /(\d{3})\-(\d|\d{2})\-(\d{3,5})\-(\d{2,5})/;
console.log(text.match(re1)[0]);
var re2 = /(\d{2})\-([a-z]{3})-(\d{4})/i;
console.log(text.match(re2)[0]);