JavaScript文本验证不工作与Regex
JavaScript Text Validation Not Working with Regex
我试图通过JavaScript验证HTML文档中的Firstname和姓氏字段。验证必须提示用户是否插入了有效的Name/姓氏,这意味着输入框中不应该有数字或奇怪的字符。
我一直在搜索stackoverflow和其他类似的网站的解决方案,但不幸的是,我没有找到我正在寻找的确切的解决方案,所以我希望这个网站周围的人可以伸出援助之手。
这是我的HTML代码:<form name="contact" method="post" action="contact.php">
<table width="200" border="0" align="center">
<tr>
<td><p class="pagetext">Name:</p></td>
<td><input type="text" name="fname" id="fname" size="30"/></td>
</tr>
<tr>
<td><p class="pagetext">Surname:</p></td>
<td><input type="text" name="sname" id="sname" size="30"/></td>
</tr>
<tr>
<td><p class="pagetext">Email:</p></td>
<td><input type="text" name="email" id="email" size="30"/></td>
</tr>
<tr>
<td><input class="btns" type="submit" onclick="validationMain();validationContact();validationErrors();" value="Submit"/></td>
<td><input class="btns" type="submit" onclick="validationReset()" value="Reset"/></td>
</tr>
</table>
</form>
这是JavaScript代码(省略了不相关的部分,以免混淆问题):
var errors = "";
var textOnly = /^[A-Za-z]+$/;
function validationMain(){
var firstname = document.getElementById('fname');
var surname = document.getElementById('sname');
var email = document.getElementById('email');
//emailRegEx expression from www.regular-expressions.info/email.html
var emailRegEx = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+'.[A-Z]{2,4}$/i;
if (firstname.value == "") {
errors += "First Name Cannot Be Left Empty'r'n";
} else {
if (firstname.value != textOnly.value){
errors += "First Name is Invalid'r'n";
}
}
if (surname.value == "") {
errors += "Surname Cannot Be Left Empty'r'n";
} else {
if (surname.value != textOnly.value){
errors += "Surname is Invalid'r'n";
}
}
if (email.value != ""){
if (email.value.search(emailRegEx) == -1){
errors += "Invalid Email Entered'r'n";
}
} else {
errors += "Email Cannot Be Left Empty'r'n";
}
}
主要问题是,无论我在文本字段中输入的名称或姓氏(即使它们是没有数字和特殊字符的正确名称),它都会提示它们无效(不应该是这种情况),所以我猜我的if条件有问题。
提前感谢您的时间,帮助和提供的任何相关信息:)
我希望我给了足够的信息,如果没有,请让我知道!你没有正确使用你的表达方式。
textOnly.test(firstname.value);
test
检查表达式是否匹配。
下面一行将文本字段的值与正则表达式的属性值进行比较。
if (firstname.value != textOnly.value){
您需要使用regexp来测试该值是否有效。
相关文章:
- 要替换的Javascript Regex无法按预期工作
- Regex拆分-工作一次
- 为什么除了html5输入模式属性之外,这个简单的regex在任何地方都能工作
- 我该怎么做;仅百分比”;Regex工作
- 我的regex可以在regex101.com沙箱中工作,但不能在实际的javascript中工作
- 用于Javascript字母数字的RegEx无法按预期工作
- Regex未在服务器端验证的代码隐藏中工作
- Javascript regex在在线验证器上工作,但在代码中失败
- Regex无法在JavaScript中工作
- regex可以在regex测试程序中工作,但不能在模式中工作
- Regex Lazy模式不会'没有按预期工作
- jQuery-RegEx工作异常
- regex's+-s*|s*-s+'无法正常工作
- 匹配简单URL的regex无法正常工作
- Regex模式无法正常工作.但仅在Extjs/Javascript中
- Regex模式验证手机不工作
- Regex未按预期工作
- 尝试更新vimeo-regex以从URL获取ID,该URL包括“;频道/工作人员挑选”;
- 这个RegEx和替换在JavaScript中究竟是如何工作的
- 可以't使javascript长度相关的regex工作