繁体   English   中英

javascript验证瑞典出生号码

[英]javascript validate swedish birthnumber

我正在尝试对输入进行简单的验证,该输入应允许使用如下格式的数字: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;   
}

但它不起作用,我错过了什么吗?

这里有几个问题我想指出。 首先, spos+4=pn.length应该是spos+4==pn.length (因为你在比较,所以双spos+4==pn.length )。 x似乎没有定义,应该删除。 您正则表达式变量as从未使用过。

真的,你想做的是:

 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