我想在php或javascript中使用正则表达式过滤年份。
只包含数字及其长度为0(如果没有输入)或4如果(插入) 对于前123,它不接受1,2或3长度。
我知道正则表达式为0到4位数,^[0-9]{0,4}$
或^\d{0,4}$
答案 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';
}