我有一个文本框,它接受格式为hh:mm或hhmm的时间(最多5个字符)。请告诉我一种方法,我可以扫描文本框中输入的字符串,特殊字符和字母? [如果输入的字符串有这些字符或字母,那么会显示警告('请输入有效时间')]我尝试了str.match和str.indexOf方法,但似乎没有帮助。
<script type='text/javascript'>
function clocks(){
var clk = document.getElementById('TIME').value;
var ampm = document.getElementById('AMPM').value;
var iChars = "!@#$%^&*()+=-[]\\\';,./{}|\":<>?";
for (var i = 0; i < 5; i++) {
if (iChars.indexOf(clks.charAt(i)) != -1) {
alert ("Pls enter a valid time");
return false;
}
}
.....}
</script>
答案 0 :(得分:0)
你是如何使用string.match()的?这应该有效:
<script type='text/javascript'>
function clocks(){
var clk = document.getElementById('TIME').value;
var ampm = document.getElementById('AMPM').value;
if (clk.match(/[^0-9:]/)) {
alert("Please enter a valid time");
}
// or, an even more precise regex
if (!clk.match(/^\d+:\d+$/)) {
alert("Please enter a valid time");
}
.....}
</script>
第一个正则表达式匹配应检查任何非数字或“:”字符,并在发现任何内容时发出警报。第二个匹配任何以一个或多个数字开头的字符串,然后是':'字符,然后是一个或多个数字,然后是字符串的结尾(这是您尝试匹配的格式)。