我为此尝试了很多不同的修复方法,但显然我没有做到这一点!我需要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 :(得分: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开头。如果字符串不以字母s
或{{1}开头然后正则表达式失败了。