[英]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.