|
| Validering af CVR numre Fra : Philips |
Dato : 23-05-05 07:37 |
|
Kender I til en funktion, som kan validere danske CVR numre?
Vil hellere bruge en eksisterende fremfor at bygge min egen.
P
| |
Jens Frøkjær (23-05-2005)
| Kommentar Fra : Jens Frøkjær |
Dato : 23-05-05 08:48 |
|
Philips wrote:
> Kender I til en funktion, som kan validere danske CVR numre?
>
> Vil hellere bruge en eksisterende fremfor at bygge min egen.
>
> P
>
>
Det er der ikke så meget grund til længere, det sidste 'checkciffer' vil
nemlig i fremtiden ikke blive brugt som et checkciffer, da der er nogle
dage der er 'for mange' mange der har fødselsdag
http://www.cpr.dk/Index/dokumenter.asp?o=2&n=0&d=528&s=4 og andre ting
på www.cpr.dk omhandler problematikken
Det må være herre øv at være den første der får et cpr-nummer der ikke
kan tjekkes...
--
Jens F!
| |
Per Thomsen (23-05-2005)
| Kommentar Fra : Per Thomsen |
Dato : 23-05-05 09:23 |
|
> Det er der ikke så meget grund til længere, det sidste 'checkciffer' vil
> nemlig i fremtiden ikke blive brugt som et checkciffer, da der er nogle
> dage der er 'for mange' mange der har fødselsdag
>
> http://www.cpr.dk/Index/dokumenter.asp?o=2&n=0&d=528&s=4 og andre ting
> på www.cpr.dk omhandler problematikken
>
> Det må være herre øv at være den første der får et cpr-nummer der ikke
> kan tjekkes...
>
Det var CVR-nr Philips spurgte på :)
Men en spændende artikel (som jeg kunne bruge - tak)
Per
| |
Jens Frøkjær (23-05-2005)
| Kommentar Fra : Jens Frøkjær |
Dato : 23-05-05 11:15 |
|
Per Thomsen wrote:
>>Det er der ikke så meget grund til længere, det sidste 'checkciffer' vil
>>nemlig i fremtiden ikke blive brugt som et checkciffer, da der er nogle
>>dage der er 'for mange' mange der har fødselsdag
>>
>> http://www.cpr.dk/Index/dokumenter.asp?o=2&n=0&d=528&s=4 og andre ting
>>på www.cpr.dk omhandler problematikken
>>
>>Det må være herre øv at være den første der får et cpr-nummer der ikke
>>kan tjekkes...
>>
>
> Det var CVR-nr Philips spurgte på :)
> Men en spændende artikel (som jeg kunne bruge - tak)
>
> Per
>
>
hehe - det så jeg også lige - men så ved I det andet!
--
Jens F!
| |
Jens Frøkjær (23-05-2005)
| Kommentar Fra : Jens Frøkjær |
Dato : 23-05-05 11:16 |
|
Jens Frøkjær wrote:
> Per Thomsen wrote:
>
>>> Det er der ikke så meget grund til længere, det sidste 'checkciffer' vil
>>> nemlig i fremtiden ikke blive brugt som et checkciffer, da der er nogle
>>> dage der er 'for mange' mange der har fødselsdag
>>>
>>> http://www.cpr.dk/Index/dokumenter.asp?o=2&n=0&d=528&s=4 og andre ting
>>> på www.cpr.dk omhandler problematikken
>>>
>>> Det må være herre øv at være den første der får et cpr-nummer der ikke
>>> kan tjekkes...
>>>
>>
>> Det var CVR-nr Philips spurgte på :)
>> Men en spændende artikel (som jeg kunne bruge - tak)
>>
>> Per
>>
>>
> hehe - det så jeg også lige - men så ved I det andet!
Gad vide hvorfor min klient valgte at svare der - burde naturligvis være
under Per Thomsens indlæg...
--
Jens F!
| |
Per Thomsen (23-05-2005)
| Kommentar Fra : Per Thomsen |
Dato : 23-05-05 13:09 |
|
> > hehe - det så jeg også lige - men så ved I det andet!
> Gad vide hvorfor min klient valgte at svare der - burde naturligvis være
> under Per Thomsens indlæg...
Hos mig står det under mit indlæg.
Per
| |
Jens Frøkjær (23-05-2005)
| Kommentar Fra : Jens Frøkjær |
Dato : 23-05-05 18:18 |
|
Per Thomsen wrote:
>>>hehe - det så jeg også lige - men så ved I det andet!
>>
>>Gad vide hvorfor min klient valgte at svare der - burde naturligvis være
>>under Per Thomsens indlæg...
>
>
> Hos mig står det under mit indlæg.
>
> Per
>
>
Det gør det også hus mig nu - efter et par genstarter af programmet -
underligt...
--
Jens F!
| |
Denn!s H (23-05-2005)
| Kommentar Fra : Denn!s H |
Dato : 23-05-05 09:15 |
|
"Philips" <a@b.c> skrev i en meddelelse
news:429179d0$0$79461$14726298@news.sunsite.dk...
> Kender I til en funktion, som kan validere danske CVR numre?
>
Der findes et JS, ved ikke om det viser korrekt.
<script>
function isValidCVR(sCVR)
{
var iCVR = new Number(sCVR);
var bValid = (((iCVR+'')!='NaN') && (sCVR.length==8))
if (bValid)
{
bValid = true;
var iRes = 0;
var sMul = '27654321';
for(var i=0; i<sCVR.length; i++)
{
iRes+= new Number(sCVR.substr(i,1))*(parseInt(sMul.substr(i,1)))
}
bValid = ((iRes % 11)==0);
}
return bValid
}
</script>
<form>
<input type="text" size="8" id="cvr" name="cvr">
<input type="button" value="Kontroler CVR" onclick="alert('CVR er '+((
isValidCVR(document.getElementById('cvr').value)) ? '' : 'ikke')+' valid')">
</form>
--
vh
Denn!s H
| |
Denn!s H (23-05-2005)
| Kommentar Fra : Denn!s H |
Dato : 23-05-05 09:20 |
|
"Denn!s H" <@> skrev i en meddelelse
news:429190f4$0$271$edfadb0f@dread11.news.tele.dk...
> "Philips" <a@b.c> skrev i en meddelelse
> news:429179d0$0$79461$14726298@news.sunsite.dk...
>> Kender I til en funktion, som kan validere danske CVR numre?
>>
>
> Der findes et JS, ved ikke om det viser korrekt.
.... krydstjek med www.cvr.dk
| |
Philips (23-05-2005)
| Kommentar Fra : Philips |
Dato : 23-05-05 14:17 |
|
"Philips" <a@b.c> wrote in message
news:429179d0$0$79461$14726298@news.sunsite.dk...
> Kender I til en funktion, som kan validere danske CVR numre?
Nu har jeg skrevet en baseret på en mail jeg fik fra CVR:
function Check_CVR ($CVR)
{
if ($CVR == False) return;
$Sum += substr ($CVR, $a++, 1) * 2;
$Sum += substr ($CVR, $a++, 1) * 7;
$Sum += substr ($CVR, $a++, 1) * 6;
$Sum += substr ($CVR, $a++, 1) * 5;
$Sum += substr ($CVR, $a++, 1) * 4;
$Sum += substr ($CVR, $a++, 1) * 3;
$Sum += substr ($CVR, $a++, 1) * 2;
$Wholes = floor (($Sum / 11));
$Remainder = ($Sum - ($Wholes * 11));
$Last_Digit = ($Remainder) ? (11 - $Remainder) : 0;
$CVR_Correct = ($Last_Digit == substr ($CVR, 7, 1)) ? True : False;
return $CVR_Correct;
}
Hvordan ville I gøre den smukkere?
Mailen er her:
Modulus 11
Alle CVR-numre overholder det såkaldte modulus 11-check. Det betyder at mens
de første 7 cifre er genereret fortløbende (stigende), bestemmes det 8.
ciffer ud fra de første syv via en "modulus 11-beregning".
Modulus 11-ckecket bruges hyppigt til identifikationsnumre, fx også til
CPR-numrene. Det giver mulighed for at checke om nummeret er falsk.
Check efter modulus 11
Princippet i checket kan forklares ved hjælp af et eksempel. CVR-nummeret
13-74-81-36 er opbygget på følgende måde, hvor "vægtene" er vedtaget på
forhånd:
Syv første cifre i CVR-nummeret
1
3
7
4
8
1
3
Vægt
2
7
6
5
4
3
2
Cifferet gange vægt
2
21
42
20
32
3
6
Summen af disse produkter er 126. Divideres 126 med 11, giver det 11 med en
rest på 5 (11*11 + 5 = 126).
Kontrolcifret beregnes ved at trække resten 5 fra 11, hvilket giver 6. Dette
ciffer er det ottende ciffer og kontrolcifret i CVR-nummeret.
Hvis resten bliver 1 skulle kontrolcifret efter metoden være 10. Da
2-cifrede kontroltal ikke kan benyttes, er det pågældende CVR-nr. ikke et
gyldigt/eksisterende CVR-nr.
P
| |
Jacob Atzen (23-05-2005)
| Kommentar Fra : Jacob Atzen |
Dato : 23-05-05 15:21 |
|
On 2005-05-23, Philips <a@b.c> wrote:
> Nu har jeg skrevet en baseret på en mail jeg fik fra CVR:
>
> function Check_CVR ($CVR)
> {
....
> }
>
> Hvordan ville I gøre den smukkere?
Mit bud:
function multiply($weight, $number) {
return $weight * $number;
}
function Check_CVR ($CVR)
{
if ($CVR == False) return;
$cvrarray = str_split((string) $CVR);
$controlNumber = array_pop($cvrarray);
$weights = array(2, 7, 6, 5, 4, 3, 2);
$Sum = array_sum(array_map('multiply', $weights, $cvrarray));
$Remainder = $Sum % 11;
$Last_Digit = (11 - $Remainder) % 11;
$CVR_Correct = ($Last_Digit == $controlNumber);
return $CVR_Correct;
}
--
Med venlig hilsen
- Jacob Atzen
| |
Peter Brodersen (24-05-2005)
| Kommentar Fra : Peter Brodersen |
Dato : 24-05-05 18:36 |
|
On 23 May 2005 14:20:57 GMT, Jacob Atzen <jacob@aub.dk> wrote:
> $Sum = array_sum(array_map('multiply', $weights, $cvrarray));
Vil man holde det i én funktion, kan man evt. erstatte 'multiply' med:
create_function('$w,$n','return $w*$n;')
Fx:
$Sum = array_sum(array_map(create_function('$w,$n','return $w*$n;'),
$weights, $cvrarray));
--
- Peter Brodersen
| |
Jacob Atzen (24-05-2005)
| Kommentar Fra : Jacob Atzen |
Dato : 24-05-05 19:15 |
|
On 2005-05-24, Peter Brodersen <usenet2005@ter.dk> wrote:
> On 23 May 2005 14:20:57 GMT, Jacob Atzen <jacob@aub.dk> wrote:
>
>> $Sum = array_sum(array_map('multiply', $weights, $cvrarray));
>
> Vil man holde det i én funktion, kan man evt. erstatte 'multiply' med:
> create_function('$w,$n','return $w*$n;')
Jamen dog, vidste ikke PHP kunne den slags. Tak for tippet :)
--
Med venlig hilsen
- Jacob Atzen
| |
|
|