2014-04-22 73 views
1

我已經爲此嘗試了許多不同的修復程序,但顯然我沒有得到它恰到好處!我需要JavaScript來驗證用戶輸入的emp_id以S或S開頭。檢查或驗證表單輸入以某個字母開頭

公司信息告訴我這樣做:

if (document.User.FirstName.value != "" & document.User.LastName.value != "" & document.User.EmpID.value != "" & (/^S/.test(document.User.EmpID.value))) 

else 
     { 
     alert("You must enter your name and Student ID. Student ID must begin with an S plus seven digits, before your completion can be recorded."); 

形式條目是:

<p align="center">Student ID: <input TYPE="text" id="emp_id" NAME="emp_id" SIZE="8" MAXLENGTH="8"> 

我也曾嘗試

if (document.User.FirstName.value != "" & document.User.LastName.value != "" & document.User.emp_id.value != "" & (/^[S]/.test(document.User.EmpID.value))) 

與一些其他變化一起,但到目前爲止,沒有運氣。

我不能偏離這個文本太多(如添加不同類型的函數或驗證)。是否有可能做到這一點?

回答

0

首先,&本身並不表示AND,您需要&&

其次,你可以很容易地更新你的正則表達式在第二個條件語句^[Ss]捕獲上面S和小寫s

第三,看來你正在訪問一個不存在的文檔元素。這似乎是你需要emp_id而不是EmpID

編輯(感謝@RobG):您還可以添加i標誌來指示表達式中未考慮該情況。爲了您的第一個if語句/^S/i.test(document.User.EmpID.value)

由於新評論:

if (document.User.FirstName.value != "" && document.User.LastName.value != "" && document.User.emp_id.value != "" && /^S/i.test(document.User.emp_id.value))應該工作,我一般都測試,它​​似乎是工作(與字母S.如果字符串開頭不是開頭的字符串字母sS然後正則表達式失敗

+0

或者添加'i'標誌來保存一個字符。:-) – RobG

+0

真相!謝謝@RobG –

+0

謝謝@bwtrent。遺憾的是還沒有工作。我現在有:if(document.User.FirstName.value!=「」&document.User.LastName.value!=「」&document.User.emp_id.value!=「」&&(/^[Ss] /。 test(document.User.EmpID.value))) – user1314071