我有文本框。用户可以在其中输入学生 ID。学生证采用这种格式 DIP0001。前三个字母应为 DIP,其余 4 位应为数字,最多只能包含 4 个字符。那么如何使用javascript检查输入的数据是否采用这种格式。请帮忙.....
问问题
1774 次
3 回答
3
您可以构建一个正则表达式模式并针对该值对其进行测试,以查看它是否与该确切模式匹配。文件:
<!DOCTYPE html>
<html lang="en">
<head>
<title>Title</title>
</head>
<body>
<label for="studentId">Student ID</label>
<input id="studentId" type="text">
<button id="btn" type="button">Validate</button>
// Embedded script so that you don't have to load an external file
<script>
var input = document.getElementById('studentId');
var btn = document.getElementById('btn');
var pattern = /DIP+\d{1,3}/g;
btn.addEventListener('click', function(){
if(pattern.test(input.value)) {
alert('It enter code here`atches!');
}else {
alert('It does not match!');
}
});
</script>
</body>
</html>
JS文件:
// This pattern looks something like this: DIP0000
var pattern = /DIP+\d{1,3}/g;
// studentId is the ID of the input field that contains the Student ID
var studentIdInput = document.getElementById('studentId');
// Check the pattern against the provided Student ID
if(pattern.test(studentIdInput.value)) {
alert('It matches the pattern!');
}
编辑 1:我在以下 JSFiddle 中构建了功能:http: //jsfiddle.net/vldzamfirescu/QBNrW/
希望对您有所帮助!
EDIT2:我已更新 JSFiddle 以匹配最多 4 位的任何其他组合;检查一下:http: //jsfiddle.net/vldzamfirescu/QBNrW/1/如果它解决了您的问题,请告诉我!
于 2013-09-20T11:08:48.953 回答
3
试试这个代码
<html>
<head>
<script>
function validate(val) {
if (val.value != "") {
var filter = /^[DIP]|[dip]+[\d]{1,4}$/
if (filter.test(val.value)) { return (true); }
else { alert("Please enter currect Student Id"); }
val.focus();
return false;
}
}
</script>
</head>
<body>
<input id="Text1" type="text" onblur="return validate(this);" />
</body>
</html>
于 2013-09-20T11:22:50.357 回答
1
使用正则表达式。
如果找到有效的学生 ID,该模式将返回 true:
function validateStudentId(id) {
var re = /DIP[0-9]{4}/;
return re.test(id);
}
//编辑为与点击事件一起使用:
document.getElementById('button').addEventListener('click', function(){
if( validateStudentId(document.getElementById('textBox').value) ){
alert('correct');
}else{
alert('invalid ID');
}
});
于 2013-09-20T11:08:07.060 回答