如何进行表格验证,如下列格式:
=> 19740315 200901 2 001 => 19740315(space)200901(space)2(space)001
只允许用户输入上述格式。 如果没有空格或不遵循格式的用户输入将显示警告。
答案 0 :(得分:1)
您可以使用正则表达式:^[0-9]{8}[ ]{1}[0-9]{6}[ ]{1}[0-9]{1}[ ]{1}[0-9]{3}$
如果用户输入不匹配,则显示警报。
答案 1 :(得分:0)
将preg_match与此正则表达式[0-9]{8}\ [0-9]{6}\ [0-9]\ [0-9]{3}
$str = '19740315 200901 2 001 ';
if(preg_match('#[0-9]{8}\ [0-9]{6}\ [0-9]\ [0-9]{3}#', $str))
{
echo 'ok';
}
else
{
echo 'wrong';
}
[0-9]
- 表示0-9范围内的数字{8}
- 意味着它必须是来自班级的8个字符,之前是0-9 \
- 是一个空格答案 2 :(得分:0)
在php中:
$a = explode(" ", "19740315 200901 2 001");
if(count($a) == 4){
//it had 4 number blocks separated with a space
if(strlen($a[0]) == 8){
//first number block had 8 digits
}else{ //first number block doesn't meet it's required length
return false;
}
if(strlen($a[1]) == 6){
//second number block had 6 digits
}else{
//second number block fails it's required length
return false;
}
if(strlen($a[2]) == 1){
//3rd number block had 1 digit
}else{
//falis for length
return false;
}
if(strlen($a[3]) == 3){
//4th number block had 3 digits
}else{
//fails at length
}
}else{
// it doesn't have 4 number blocks
}
同样的方法可以用jQuery编写。
只需使用.split() for explode()
答案 3 :(得分:0)
PHP中的变体。由于您没有提供有关此类零件类型的信息,我猜测它们是这样的:
如果日期已过,也可以确认!
验证此功能的功能可能如此:
<?php
function validateMyData($data) {
//is data here
if ($data === null || strlen($data !== 21) return false;
//split into parts and check
$parts = explode(' ', $data);
if (count($parts) !== 4) return false;
//check first part (also validate if it is a valid date)
if (preg_match('/[0-9]{8,8}/', $parts[0]) < 1) return false;
$date = @mktime(0, 0, 0, substr($parts[0],4,2), substr($parts[0],6,2), substr($parts[0],0,4));
if (!$date || $date === -1) return false;
//check second part
if (preg_match('/[0-9]{6,6}/', $parts[1]) < 1) return false;
//check third part
if (preg_match('/[0-9]{1,1}/', $parts[2]) < 1) return false;
//check fourth part
if (preg_match('/[0-9]{3,3}/', $parts[3]) < 1) return false;
//everything ok!
return true;
}
我独立检查了部件,根据部件的内容向您显示可以进一步检查的位置。否则,可以使用单个正则表达式和第一部分的单独日期检查轻松完成。