我正在嘗試完成一些作業,看起來這本書可能錯了。我有一個簡單的html頁面,允許用戶在我們的美國運通信用卡中選擇信用卡。用戶然後輸入一個數字並根據正則表達式評估該數字。我的問題最終是當test()計算返回一個布爾值或字符串的數字嗎?我應該然後比較該字符串或布爾值? True == true應該觸發嵌套if語句中的代碼。下面是這本書給我的有效代碼:用正則表達式使用測試進行信用卡驗證()
if(document.forms[0].cardName.value == "American Express")
{
var cardProtocol = new RegExp("^3[47][0-9]{13}$"); //REGEX ENTRY HERE
if(cardProtocol.test(document.forms[0].cardNumber.value))
document.forms[0].ccResult.value = "Valid credit card number";
}
上面的代碼在firefox中不起作用。我試着2個警報修改它,以確保該號碼是好的,布爾是好的...並仍然沒有運氣:
if(document.forms[0].cardName.value == "American Express")
{
var cardProtocol = new RegExp("^3[47][0-9]{13}$"); //REGEX ENTRY HERE <------
alert(document.forms[0].cardNumber.value)
alert(cardProtocol.test(document.forms[0].cardNumber.value))
if((cardProtocol.test(document.forms[0].cardNumber.value)) == true) // <--Problem
{
document.forms[0].ccResult.value = "Valid credit card number";
}
else
{
document.forms[0].ccResult.value = "Invalid credit card number";
}
}
任何想法?如果循環是罪魁禍首,但我不明白爲什麼它不工作。請拋出if循環的代碼!謝謝您的幫助!
請參閱[MDC:使用正則表達式](https://developer.mozilla.org/en/JavaScript/Guide/Regular_Expressions#Working_with_Regular_Expressions)另請考慮使用適當的[信用卡驗證檢查數字例程](http ://www.beachnet.com/~hstiles/cardtype.html)(得到這個工作之後:-)使這段代碼更容易閱讀的一件簡單的事情就是`var form = document.forms [0]; ... if(form.cardName ==「..」){... form.ccResult.value =「...」...} - 開心編碼。請記住使用控制檯/調試器/ jsbin來「測試」一點邏輯。 – 2011-02-06 07:17:29