日期正则表达式给出错误

发布于 2024-09-11 06:11:54 字数 375 浏览 5 评论 0原文

我一整天都在研究我的约会正则表达式...... 我想要的日期格式为 YYYY-MM-DD。

$date_regex ='^(19|20)\d\d[- /.](0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])$';

if (preg_match($date_regex, $dateString)) {
        echo "good format";
    }

一直给我错误

preg_match() [function.preg-match]: 在 test.php 第 19 行中找不到结束分隔符“^”

有人帮忙吗?多谢!!

I have been working on my date regular expression all day...
I want a date format to be YYYY-MM-DD.

$date_regex ='^(19|20)\d\d[- /.](0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])

keeps giving me error

preg_match() [function.preg-match]: No ending delimiter '^' found in test.php on line 19

Anyone help?? Thanks a lot!!

; if (preg_match($date_regex, $dateString)) { echo "good format"; }

keeps giving me error

preg_match() [function.preg-match]: No ending delimiter '^' found in test.php on line 19

Anyone help?? Thanks a lot!!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

○闲身 2024-09-18 06:11:54

您需要将正则表达式包装在一对分隔字符中。此外,您需要使用 \ 转义字符类中的破折号。

试试这个(我使用 # 作为分隔符):

$date_regex ='#^(19|20)\d\d[\- /.](0[1-9]|1[012])[\- /.](0[1-9]|[12][0-9]|3[01])$#';

You need to wrap your regular expression in a pair of delimiting characters. Also, you need to escape the dashes in your character classes using \.

Try this (I'm using # as a delimiter):

$date_regex ='#^(19|20)\d\d[\- /.](0[1-9]|1[012])[\- /.](0[1-9]|[12][0-9]|3[01])$#';
心意如水 2024-09-18 06:11:54

您需要包含 /s 否则正则表达式认为您用 ^

'/^(19|20)\d\d[- /.](0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])$/'

问候来限制它

You need to include the /s otherwise the regex thinks you are limiting it with the ^

'/^(19|20)\d\d[- /.](0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])$/'

Regards

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文