正则表达式 - 仅匹配正斜杠和数字(日期)

时间:2018-03-21 12:07:42

标签: javascript regex

我已经待了太久了。正斜线给我带来了麻烦。 如何将字符串与正斜杠或此格式的日期数匹配

12/1/1975

我正在使用javascript并以这种简单的方式使用正则表达式:

let reg = /^\d+$/ reg.test("123")

谢谢!

4 个答案:

答案 0 :(得分:1)

对于您使用的日期格式,

let reg = /^\d{1,2}\/\d{1,2}\/\d{4}$/;
reg.test('12/1/1975');

您当然可以更复杂地检查这些值是否真的是合法的日期......

对于2或4位数的年份,请使用

let reg = /^\d{1,2}\/\d{1,2}\/\d\d(\d\d)?$/;
reg.test('12/1/75');

答案 1 :(得分:0)

您可以找到正则表达式here

它还支持dd-mm-yyyy格式。 如果您只想使用正斜杠,那么您可以使用以下正则表达式

 /^(0?[1-9]|[12][0-9]|3[01])[\/](0?[1-9]|1[012])[\/]\d{4}$/

答案 2 :(得分:0)

试试这个:

let regex = \d{2}\/\d{1,2}\/(?:\d{4}|\d{2});

\d{2}表示两位数字,
\/匹配正斜杠,
(?:\d{4}|\d{2})是一个非捕获组,匹配年份的2或4位数。

非捕获组只是将\d{4}|\d{2}组合在一起,但告诉系统不要将其作为一个组。

此外,如果您想避免用户为任何部分输入1个或多个0 s的可能性,只需将\d替换为[1-9],这意味着来自1的任何数字到9。

答案 3 :(得分:0)

如果您只想接受1-12到1-31之间的月份,您可以尝试以下操作:

let reg = /^([1-9]|[12][0-9]|3[01])\/([1-9]|1[012])\/\d{2,4}$/;

console.log(reg.test("12/1/1975"));