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