2016-11-24 78 views
-1

我想驗證兩個字符和一個數字是否正確輸入。Javascript表單驗證模式

var studentValid = /^[MTWTF][AL][1-9]$/i; 
if (studentValid.test(studentTemp.value)) 
{ 
    alert("true"); 
} 
else 
{ 
    alert("false"); 
} 

然而,我輸入的所有內容都是假的?

+5

你想驗證爲真,但是會給你錯誤的?例如,值「MA9''會給你真實的。問題在於你的正則表達式。 – Cleared

回答

1

問題出在您的正則表達式(/^[MTWTF][AL][1-9]$/i)。這告訴你的是,你首先需要一個字符M,T,W,T或F,然後是A或L,最後是一個數字(在這之前或之後沒有任何內容)。

因此,例如

ML4,WA5,FL9

會給你真正的 而

AM9,ML0,MMA5,MA99

會給你虛假的。

這是你試圖匹配的模式嗎?沒有什麼別的你的代碼錯誤和有效值會給你真實的,例如:

var studentValid = /^[MTWTF][AL][1-9]$/i; 
var value = 'MA9'; 
if (studentValid.test(value)) 
{ 
    alert("true"); 
} 
else 
{ 
    alert("false"); 
} 

當使用正則表達式的工作,它可以是非常有用的使用工具來幫助你建立它,看看https://regex101.com/r/A5FOIh/3在那裏你可以嘗試你不同的studentTemp.value看看他們是否匹配。

+0

感謝您的鏈接,非常有幫助。 – Cheese