我试图使用regex检查用户输入的格式是否为xx-xx (输入只接受数字,不接受字母数字字符)。
我试过:/[1-9]{1,}\-[1-9]{1,}/
,但是当输入字母字符时仍然通过了这个测试。
你们能帮帮我吗。谢谢。
发布于 2022-08-04 15:21:06
您的正则表达式很好,只需要添加位置断言,"^“表示字符串的开头,"$”表示字符串的末尾:
/^[1-9]{2}\-[1-9]{2}$/
如果你只想要xx-xx,最好加上"{2}“。
发布于 2022-08-04 15:18:31
/\d{2}-\d{2}/
为我工作过。
细目:
\d检查一个数字字符,即0-9。
{2}专门检查彼此旁边的两个数字。
-只检查连字符。
发布于 2022-08-04 17:39:53
另一方面,你可以有几个案例,这取决于你要寻找的是什么。
如果您同意xx-xx值可以是00-00和任何其他值,则应该使用此正则表达式:
/^\d{2}-\d{2}$/
如果您接受一个xx-xx值永远不是00-00,但可以是01-03和任何其他值,但不是00-00,那么您应该使用这个regex (有点长,对不起,但是做得很好):
/^[1-9](?=[0-9])[0-9]-[1-9](?=[0-9])[0-9]$|^[0-9](?=[1-9])[1-9]-[0-9](?=[1-9])[1-9]$/
享受吧!
https://stackoverflow.com/questions/73238340
复制相似问题