在現(xiàn)代網(wǎng)頁(yè)應(yīng)用中,JavaScript是不可或缺的一部分。通過(guò)JavaScript,我們能夠極大地增強(qiáng)網(wǎng)頁(yè)的交互性和響應(yīng)能力。尤其是對(duì)于需要用戶(hù)輸入的表單,數(shù)據(jù)校驗(yàn)就更加必不可少。數(shù)據(jù)校驗(yàn)的目的是為了保證用戶(hù)輸入的數(shù)據(jù)合法有效,避免出現(xiàn)不必要的錯(cuò)誤,防止攻擊等。
我們來(lái)看一個(gè)例子,比如說(shuō)登錄表單。用戶(hù)輸入的登錄名必須是有效的電子郵件地址,密碼長(zhǎng)度不能少于8位等等。那么如何對(duì)這些數(shù)據(jù)進(jìn)行校驗(yàn)?zāi)兀?/p>
// 檢查用戶(hù)名是否是電子郵件格式 function checkEmail(input) { var emailRe = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; if (emailRe.test(input.value)) { return true; } else { return false; } } // 檢查密碼長(zhǎng)度 function checkPassword(input) { if (input.value.length >= 8) { return true; } else { return false; } } // 表單校驗(yàn)入口函數(shù) function checkForm(form) { var emailInput = form.querySelector('input[type="email"]'); var passwordInput = form.querySelector('input[type="password"]'); if (checkEmail(emailInput) && checkPassword(passwordInput)) { return true; } else { alert("輸入有誤,請(qǐng)重新輸入!"); return false; } }
這段代碼實(shí)現(xiàn)了檢查用戶(hù)名是否符合電子郵件格式,檢查密碼長(zhǎng)度等功能。表單校驗(yàn)入口函數(shù)checkForm將具體的校驗(yàn)函數(shù)組合起來(lái),并根據(jù)校驗(yàn)結(jié)果返回true或false。如果校驗(yàn)失敗,通過(guò)alert彈出提示信息,讓用戶(hù)重新輸入。
上面這個(gè)例子只是簡(jiǎn)單的校驗(yàn),實(shí)際上數(shù)據(jù)校驗(yàn)還有很多細(xì)節(jié)需要注意。比如說(shuō)如果用戶(hù)輸入了空格,那么就算輸入的郵箱是有效的,也會(huì)通過(guò)不了校驗(yàn)。這時(shí)可以通過(guò)trim方法去掉首尾空格。還有對(duì)于用戶(hù)名等需要去重的情況,需要在前端進(jìn)行AJAX異步校驗(yàn)。
不過(guò),不管怎么說(shuō),前端數(shù)據(jù)校驗(yàn)都是不可避免的環(huán)節(jié),因?yàn)橛脩?hù)輸入的數(shù)據(jù)不可控制,容錯(cuò)能力要強(qiáng)。