我的代码问题是用户名的输入字段仍然接受数字。
我尝试使用match()和(否则如果)验证它但仍然无效。 执行跳转到(else)行。
请任何帮助将不胜感激。
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Functions in JS</title>
<script language="Javascript">
function showName() {
var entered=document.getElementById("name1").value;
var patt1 =/\[0-9]/g;
if( entered !==''){
document.getElementById("demo").innerHTML= entered;
}
else if( entered.match(patt1) ){
document.getElementById("demo").innerHTML="please enter a valid value";
}
else{
document.getElementById("demo").innerHTML="please enter value";
}
}
</script>
</head>
<body>
<form>
<label>Name:</label>
<input type="text" name="name1" id="name1" title="Only Alphabets" >
</form>
<input type="submit" onClick="showName();" >
<p><span id="demo"></span></p>
</body>
</html>
答案 0 :(得分:1)
您必须根据模式test()
输入。来自w3schools:
test()方法测试字符串中的匹配。
如果找到匹配项,则此方法返回true,否则返回 假的。
<script language="Javascript">
function showName() {
var entered = document.getElementById("name1").value;
var pattern = /[0-9]+$/;
if(entered == ""){
document.getElementById("demo").innerHTML="Please enter a value";
} else if(pattern.test(entered)){
document.getElementById("demo").innerHTML="Please enter a valid value";
} else {
document.getElementById("demo").innerHTML=entered;
}
}
</script>
在我的解决方案中,我只寻找两个例外:没有输入和输入包含数字。其他一切都是允许的。您可能需要根据需要进行更改:)
答案 1 :(得分:0)
function showName() {
var entered=document.getElementById("name1").value;
var patt1 =/[0-9]+$/;
if(entered.match(patt1) ){
document.getElementById("demo").innerHTML='please enter a valid value '
}
else{
document.getElementById("demo").innerHTML= entered;
}
}
&#13;
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Functions in JS</title>
<script language="Javascript">
</script>
</head>
<body>
<form>
<label>Name:</label>
<input type="text" name="name1" id="name1" title="Only Alphabets" >
</form>
<input type="submit" onClick="showName();" >
<p><span id="demo"></span></p>
&#13;