我有文字框。 用户可以输入学生ID。 学生ID的格式为DIP0001。 前三个字母应为DIP,其余4个数字应为数字,最多只能包含4个字符。 那么如何使用javascript检查输入的数据是否采用这种格式。 请帮忙.....
答案 0 :(得分:3)
您可以构建正则表达式模式并针对该值进行测试,以查看它是否与该确切模式匹配。 HTML文件:
<!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/如果它解决了你的问题,请告诉我!
答案 1 :(得分: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>
答案 2 :(得分: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');
}
});