使用正则表达式过滤固定长度为0或4位的年份

时间:2013-03-30 21:25:38

标签: php javascript regex

我想在php或javascript中使用正则表达式过滤年份。

只包含数字及其长度为0(如果没有输入)或4如果(插入) 对于前123,它不接受1,2或3长度。

我知道正则表达式为0到4位数,^[0-9]{0,4}$^\d{0,4}$

3 个答案:

答案 0 :(得分:9)

尝试以下方法:

^([0-9]{4})?$

^ - 行开头

([0-9]{4})? - 四个数字,可选(因为?

$ - 行尾

答案 1 :(得分:3)

我知道这个问题已经得到解答,但为了更清楚,作为一种替代解决方案,我会想出这个:

在你的模式中:

^[0-9]{0,4}$

{0,4}将允许匹配长度为0,1,2,3和4的数字。要消除长度1,2和3,您还可以使用以下内容:

^\d{4}?$

下面:

^    = beginning of line
\d   = any digit - equivalent of [0-9]
{4}  = exactly four times
?    = makes the preceding item optional
$    = end of line

希望它有所帮助!

答案 2 :(得分:-1)

您不需要将正则表达式用于匹配一年这么简单的事情:

if (ctype_digit($year) && strlen($year) === 4) {
    echo 'This is a year';
} else {
    echo 'Not a year';
}