首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在JavaScript中使用这个正则表达式?

如何在JavaScript中使用这个正则表达式?
EN

Stack Overflow用户
提问于 2011-01-22 08:51:00
回答 3查看 4.6K关注 0票数 2

我正在尝试使用以下正则表达式来测试有效日期。

代码语言:javascript
运行
复制
^(((0?[1-9]|1[012])/(0?[1-9]|1\d|2[0-8])|(0?[13456789]|1[012])/(29|30)|(0?[13578]|1[02])/31)/(19|[2-9]\d)\d{2}|0?2/29/((19|[2-9]\d)(0[48]|[2468][048]|[13579][26])|(([2468][048]|[3579][26])00)))$

我是从

http://regexlib.com/REDetails.aspx?regexp_id=1071

我的JavaScript测试代码是:

代码语言:javascript
运行
复制
var date='1/1/1965';
var re = new RegExp('^(((0?[1-9]|1[012])/(0?[1-9]|1\d|2[0-8])|(0?[13456789]|1[012])/(29|30)|(0?[13578]|1[02])/31)/(19|[2-9]\d)\d{2}|0?2/29/((19|[2-9]\d)(0[48]|[2468][048]|[13579][26])|(([2468][048]|[3579][26])00)))$');
alert(re.test(date));

对于这个有效的测试日期,我总是得到"false“而不是"true”。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-01-22 08:59:07

试试这个:

代码语言:javascript
运行
复制
var date='1/1/1965'; 
var re = /^(((0?[1-9]|1[012])\/(0?[1-9]|1\d|2[0-8])|(0?[13456789]|1[012])\/(29|30)|(0?[13578]|1[02])\/31)\/(19|[2-9]\d)\d{2}|0?2\/29\/((19|[2-9]\d)(0[48]|[2468][048]|[13579][26])|(([2468][048]|[3579][26])00)))$/;
alert(re.test(date)); 
票数 3
EN

Stack Overflow用户

发布于 2011-01-22 08:55:05

只需将其放在正斜杠中:

代码语言:javascript
运行
复制
var re = /^(((0?[1-9]|1[012])\/(0?[1-9]|1\d|2[0-8])|(0?[13456789]|1[012])/(29|30)|(0?[13578]|1[02])/31)\/(19|[2-9]\d)\d{2}|0?2/29/((19|[2-9]\d)(0[48]|[2468][048]|[13579][26])|(([2468][048]|[3579][26])00)))$/

现在,虽然这将为您提供一个可使用的正则表达式,但我不得不说这可能是regex有史以来最愚蠢的应用程序之一。你最好只实例化一个JavaScript“”对象,并使用它出人意料的友好的API来检查你需要检查什么。

如果您使用假日期实例化一个JavaScript " date“对象(如2月30日),它将滚动到sort-of对应于假日期的实际日期;换句话说,它会将假日期延续到下一个月。因此,如果您只保留月份和日期,并创建一个" date“实例,您就可以知道,如果"Date”实例提供给您的月份和日期与您提供给它的月份和日期不同,那么原始日期一定是不真实的。

票数 0
EN

Stack Overflow用户

发布于 2011-01-22 08:55:08

你的问题可能是斜杠的转义。

有两种方法可以在javascript中插入regexp。第一种方法是将其放在正斜杠中,第二种方法是使用RegExp对象,这意味着您必须在JavaScript代码中将regexp字符串本身作为字符串包含在内。

与Javascript中包含特殊字符(如反斜杠)的其他字符串一样(正则表达式就是这样),您必须用另一个反斜杠对它们进行转义。

因此,基本上只需将代码中的每个反斜杠替换为双反斜杠(\),就可以了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4765406

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档