2012-12-06 403 views
0

我在嘗試讓JavaScript和Regex識別來自我正在處理的HTML文件的輸入時遇到問題。Javascript和正則表達式驗證

function validateSchoolClass(field) 
{ 
if(field == "") 
{ 
    return "No class ID was entered.\n"; 
} 
else if (field.length != 4) 
{ 
    return "Class ID must be 4 characters.\n"; 
} 
else if (/[^A-Z]{2}[^0-9]{2}/.test(field)) 
{ 
    return "Class Name must be two capital letters followed by two numbers.\n"; 
} 
return ""; 
} 

我希望發生的是,輸入傳遞將包含4個字符第2將是大寫字母和未來2將是數字領域。我不知道是否我錯過了一些東西,但是從我讀過的所有東西都可以正常工作,但是它並沒有傳遞任何4字符的輸入,仍然算作有效!

回答

1

我想改變這種狀況最終else if

else if (!/^[A-Z]{2}[0-9]{2}$/.test(field)) 

隨後的兩位數字爲兩個大寫字母的正則表達式測試,然後我用!反轉的結果,這樣你就可以舉報的事情,不要不匹配。 (我也在開始和結束時添加了錨點,但是隨着您之前的長度檢查,它們在技術上可能是多餘的。)

+0

非常感謝。我一直堅持這幾天。我很想趕上兩個否定範圍的工作。 –