使用正则表达式,使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的自动生成的脚本中提示,目前先这样实现吧,将来再说! |