我有一个需要验证的文本输入框。用户应该只能以dd-Mmm-yyyy格式输入日期。例如:2013年6月1日至2015年8月31日,等等。或者他们应该能够输入T + 1,T + 2,... T + 99。
我可以用什么样的正则表达式来验证这两种模式。我认为,为了验证dd-Mmnm-yyyy,以下正则表达式起作用:
^(([0-9])|([0-2][0-9])|([3][0-1]))\-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\-\d{4}$
请帮助我!
更新:我只需要单个字母T的正则表达式模式,然后是" +"数字范围从" 1到99"。即,[T + 1 ... T + 99]。用户应该只能在文本字段中输入这些数字。
答案 0 :(得分:2)
不确定你对T + 1等的意思,但这里是你所需要的最低限度:
^[01][0-9]-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-\d{4}$
您还可以使用i
标志使整个事件不区分大小写。
答案 1 :(得分:2)
如果我正确理解了您的问题,我添加了为原始正则表达式输入匹配(T\+[0-9]+)
的可能性。
^((([0-9])|([0-2][0-9])|([3][0-1]))\-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\-\d{4})|(T\+[0-9]+)$
答案 2 :(得分:2)
然后是" +"和一个从" 1到99" 的数字
尝试:T\+?\d{0,2}
其中:
T
字面意思" T"; \+?
- 零或一加号" +"使用转义反斜杠(或其他转义字符,取决于语言) - 如果没有它,它将被视为元字符' +&#39 ;;额外的'?'唱歌意味着,那之前的角色可能出现,但没有必要\d{0,2}
- 从零到两位数;