使用正則表達式,使email字段中不能輸入漢字。最近用AppFuse開發一個BS的系統,用的是Struts的MVC部分,使用Validator進行驗證,結果發現Validator的驗證EMail并不好,EMail中可以輸入漢字,然后到服務器端驗證,我配置了客戶端驗證,也可以驗證Email的格式,但如果輸入的是正確的格式,但是包含漢字它卻驗證不出來,但到了后臺又管用了,不知道為什么,時間緊,我也沒時間去研究它,找到一個方法可以解決這個問題,雖不完美,卻也湊合:
使用正則表達式,將原代碼 <html:text property="email" styleId="email" size="50"/> 注釋,換成
<input type="text" name="email" value='<c:out value="${userForm.email}"/>' onkeyup="value=value.replace(/[\u4E00-\u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[\u4E00-\u9FA5]/g,''))" /> 就解決了問題,用戶如果輸入漢字,則自動刪除漢字,而且如果使用向左的箭頭向前移動使光標前移,則根本移動不了,光標始終在行尾,只能刪除后面的字符,再重新寫,其實最好是在EMail的自動生成的腳本中提示,目前先這樣實現吧,將來再說! |