Validation 如何在cakephp中验证个人标识号
我需要验证我表格中的一个字段,该字段属于我所在国家的个人身份号码,该号码有10位数字 示例:卡=1710034065 2 1 2 1 2 1 2(系数) 1 7 1 0 3 4 0 6(个人身份证号码) 2 7 2 0 3 8 0 12=25(将个人号码的每个数字乘以 3系数,如果结果>10,则在数字之间加上) 加乘法 求和的结果 25/10=2,余数5,除以10-余数5=5(校验位)**等于身份号码的最后一个数字**Validation 如何在cakephp中验证个人标识号,validation,cakephp-2.0,Validation,Cakephp 2.0,我需要验证我表格中的一个字段,该字段属于我所在国家的个人身份号码,该号码有10位数字 示例:卡=1710034065 2 1 2 1 2 1 2(系数) 1 7 1 0 3 4 0 6(个人身份证号码) 2 7 2 0 3 8 0 12=25(将个人号码的每个数字乘以 3系数,如果结果>10,则在数字之间加上) 加乘法 求和的结果 25/10=2,余数5,除以10-余数5=5(校验位)**等于身份号码的最后一个数字** 现在我需要的是在框架中实现这个逻辑,我不知道如何实现, 我有一个java示
现在我需要的是在框架中实现这个逻辑,我不知道如何实现, 我有一个java示例代码,可以更好地了解我需要做什么
function check_cedula( form )
{
var cedula = form.cedula.value;
array = cedula.split( "" );
num = array.length;
if ( num == 10 )
{
total = 0;
digito = (array[9]*1);
for( i=0; i < (num-1); i++ )
{
mult = 0;
if ( ( i%2 ) != 0 ) {
total = total + ( array[i] * 1 );
}
else
{
mult = array[i] * 2;
if ( mult > 9 )
total = total + ( mult - 9 );
else
total = total + mult;
}
}
decena = total / 10;
decena = Math.floor( decena );
decena = ( decena + 1 ) * 10;
final = ( decena - total );
if ( ( final == 10 && digito == 0 ) || ( final == digito ) ) {
alert( "La c\xe9dula ES v\xe1lida!!!" );
return true;
}
else
{
alert( "La c\xe9dula NO es v\xe1lida!!!" );
return false;
}
}
else
{
alert("La c\xe9dula no puede tener menos de 10 d\xedgitos");
return false;
}
}
功能检查\u cedula(表格)
{
var cedula=form.cedula.value;
数组=cedula.split(“”);
num=数组长度;
如果(num==10)
{
总数=0;
digito=(数组[9]*1);
对于(i=0;i<(num-1);i++)
{
mult=0;
如果((i%2)!=0){
总计=总计+(数组[i]*1);
}
其他的
{
mult=数组[i]*2;
如果(mult>9)
总计=总计+(mult-9);
其他的
总数=总数+倍数;
}
}
decena=总数/10;
decena=数学楼层(decena);
decena=(decena+1)*10;
最终=(DeceA-总计);
if((final==10&&digito==0)| |(final==digito)){
警报(“La c\xe9dula ES v\xe1lida!!!”;
返回true;
}
其他的
{
警报(“La c\xe9dula NO es v\xe1lida!!!”;
返回false;
}
}
其他的
{
警报(“没有10天的紧急情况”);
返回false;
}
}
假设您的型号名称是用户
,数据库中的字段是卡
,您可以执行以下操作:
<?php
class User extends AppModel {
/**
* Validation rules
*/
public $validate = array(
'card' => array(
'validateCard' => array(
'rule' => array('validateCard'),
'message' => 'Card does not validate'
)
)
);
/**
* Custom validation rule
* @return bool
*/
public function validateCard($field) {
$cardNumber = $field['card'];
// Here, perform your logic and return a boolean
}
}
<?php
echo $this->Form->create();
echo $this->Form->input('User.card');
echo $this->Form->end();