我想允许两种不同的日期格式:
2017年1月1日和2017年1月1日
我正在使用此正则表达式,但它不起作用:
re = /^(\d{1,2})\/(\d{1,2})\/(\d{4})|[0-9]{1,2}\-[a-zA-Z]{3}\-[0-9]{4}/;
答案 0 :(得分:5)
对备选方案进行分组并添加字符串锚点的结尾:
/[()]/.test(str)
请参阅regex demo。
如果没有分组构造,re = /^(?:\d{1,2}\/\d{1,2}\/\d{4}|\d{1,2}-[a-zA-Z]{3}-\d{4})$/;
^^^ ^ ^^
仅应用于^
,而另一个替代方案将在字符串中的任何位置进行搜索。
如果没有(\d{1,2})
锚点,即使找到的模式不在字符串的末尾,模式也可以匹配(并且您将获得部分匹配)。