如何修复这个简单的正则表达式测试?
How do I fix this simple regex test?
我是这一切的新手 - 我想做的就是使用 onblur 检查名字和姓氏。这可能是一个基本问题,但我似乎无法弄清楚为什么它总是吐出 ELSE 语句而不吐出 IF。我已经尝试过以多种方式更改 re1,但似乎无法解决问题。
function validateFirst () {
var fName = document.getElementById("firstName").value;
var re1= /^[a-zA-Z ,.'-] {2,}$/;
if (re1.test(fName)) {
document.getElementById ("firstNamePrompt").style.color = "green";
document.getElementById ("firstNamePrompt").innerHTML = "<strong>valid</strong>";
return true;
}
else {
document.getElementById ("firstNamePrompt").style.color = "red";
document.getElementById ("firstNamePrompt").innerHTML = "<strong>Enter 2-15 characters</strong>";
return false;
}
}
在我的html中,我是这样写的:
<tr>
<td class="label_col">First Name</td>
<td class="input_col"><input name="firstName" id="firstName" type="text" onblur="validateFirst();"> </td>
<td class="feedback_col"><span id="firstNamePrompt"> </span></td>
</tr>
我可能遗漏了一些简单的东西,但是对于这个初学者的任何帮助将不胜感激!
您的模式需要字符串以 space 结尾,因此它不会匹配,除非 fName
末尾有 space。
试试这个模式,它满足您的用户名只包含两种情况的字母的要求,spaces、逗号、撇号、连字符、句点,并且最少有 2 个字符,最多有 15 个字符:
^[a-zA-Z ,.'-]{2,15}$
我是这一切的新手 - 我想做的就是使用 onblur 检查名字和姓氏。这可能是一个基本问题,但我似乎无法弄清楚为什么它总是吐出 ELSE 语句而不吐出 IF。我已经尝试过以多种方式更改 re1,但似乎无法解决问题。
function validateFirst () {
var fName = document.getElementById("firstName").value;
var re1= /^[a-zA-Z ,.'-] {2,}$/;
if (re1.test(fName)) {
document.getElementById ("firstNamePrompt").style.color = "green";
document.getElementById ("firstNamePrompt").innerHTML = "<strong>valid</strong>";
return true;
}
else {
document.getElementById ("firstNamePrompt").style.color = "red";
document.getElementById ("firstNamePrompt").innerHTML = "<strong>Enter 2-15 characters</strong>";
return false;
}
}
在我的html中,我是这样写的:
<tr>
<td class="label_col">First Name</td>
<td class="input_col"><input name="firstName" id="firstName" type="text" onblur="validateFirst();"> </td>
<td class="feedback_col"><span id="firstNamePrompt"> </span></td>
</tr>
我可能遗漏了一些简单的东西,但是对于这个初学者的任何帮助将不胜感激!
您的模式需要字符串以 space 结尾,因此它不会匹配,除非 fName
末尾有 space。
试试这个模式,它满足您的用户名只包含两种情况的字母的要求,spaces、逗号、撇号、连字符、句点,并且最少有 2 个字符,最多有 15 个字符:
^[a-zA-Z ,.'-]{2,15}$