簡體   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