Res*_*ent 3 regex testing jquery
所以我在 jQuery 中有以下代码,我试图基本上匹配 MM/YYYY 格式的日期,其中 MM 是 1 到 12 之间的值,YYYY 是 1900 年代或 2000 年代的日期。我之前并没有真正使用过jQuery的测试功能。有人可以告诉我我的代码或正则表达式有什么问题吗?
var fieldValue = $(this).val();
if(!fieldValue.test(([1-9]|1[0-2])/^(19|20)\d\d)){
Errors = Errors + 1;
$(this).addClass("form_error");
}
Run Code Online (Sandbox Code Playgroud)
您的代码有几个问题:
RegExp#test(String),而不是String#test(RegExp)/...//在正则表达式文字内转义^开头添加并在结尾添加锚点$使用
if(!/^(0?[1-9]|1[0-2])\/((?:19|20)\d\d)$/.test(fieldValue)) {
Run Code Online (Sandbox Code Playgroud)
否则,您可以使用String#match并检查匹配是否成功
if(fieldValue.match(/^(0?[1-9]|1[0-2])\/((?:19|20)\d\d)$/)) {
Run Code Online (Sandbox Code Playgroud)
将0?允许可选的前导0.
细节:
^- 字符串的开头(0?[1-9]|1[0-2])- 第 1 组:月份,从01到12\/ - A/((?:19|20)\d\d)- 第 2 组:或者19或20然后 2 位数字$- 字符串末尾。| 归档时间: |
|
| 查看次数: |
32712 次 |
| 最近记录: |