简体   繁体   English

javascript验证瑞典出生号码

[英]javascript validate swedish birthnumber

im trying to do a simple validation for an input who shall allow a number formated like this: 112233-1111 and when i accomplish that i would make it so that 22 cant exceed 12 and 33 exceed 31, this is what i got so far我正在尝试对输入进行简单的验证,该输入应允许使用如下格式的数字:112233-1111,当我完成此操作时,我将使其 22 不能超过 12,而 33 不能超过 31,这就是我到目前为止所得到的

var pn=document.forms.kontakt.pnr.value;
var spos=pn.indexOf("-"); 
var as= /^[0-9]{10}$/; 
if (pn<11 || spos+4=pn.length || pn==null || pn=="")
{
alert ("Fyll i korrekt personnummer xxxxxx-xxxx");
kontakt.pnr.style.background = "red";
return false;   
}

but it aint working, have i missed something?但它不起作用,我错过了什么吗?

There are a few problems here that I'd like to point out.这里有几个问题我想指出。 First, spos+4=pn.length should be spos+4==pn.length (double equals because you are comparing).首先, spos+4=pn.length应该是spos+4==pn.length (因为你在比较,所以双spos+4==pn.length )。 x does not seem to be defined and should be removed. x似乎没有定义,应该删除。 Your regex variable as is never used.您正则表达式变量as从未使用过。

Really, what you want to do is:真的,你想做的是:

 function calculate() { //this matches 6 numbers followed by a ("-" or "+") followed by 4 more numbers var as = /^[0-9]{6}[-+][0-9]{4}$/; var pn=document.forms.kontakt.pnr.value; if (as.test(pn)) { var year = pn.substr(0,2); var month = pn.substr(2,2); var day = pn.substr(4,2); //You probably need a better date checker, this is just an example if (month <= 12 && day <= 30) { document.body.innerHTML = 'great success!'; return; } } document.body.innerHTML = 'Too bad!'; }
 <form name="kontakt"> <input name="pnr" type="text" value="991222-1111"/> <button type="button" onclick="calculate()">Calculate</button> </form>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM