我有一个接受时间(最多只能包含5个字符)的文本框,以及一个接受am或pm值的下拉菜单。我需要对输入到文本框中的字符串值执行一些验证,例如:如果用户输入9 =>应更改为09009:3 => 093009:3 => 093093 =>警报(“无效时间”值)115 => 011512 => 1200应该显示无效的条目,例如!@#$%^&*()?/〜`,;“” [] _- abcdefg .. =>警报(“无效时间值”)。到目前为止,我所要做的就是用''替换:。例如,如果用户输入09:00 => 0900我需要类似的东西:如果clks是1位数,则右击clks带有2个零。如果2位数字:clks> 12,则发出警报(无效小时值)如果3位数:clks 或clks>(%59),然后发出警报(“无效分钟数”值)如果是4位数字:clks> 12%(检查前2个字符),则发出警告(“无效小时数”) 或(clks> 12%和clks> 59%),然后发出警报(“无效时钟时间”) 或(clks 如果有5位数字:(且全部为数字),则发出提示(“无效的时钟时间”)这些验证需要在脚本标签内完成。 (我使用的后端语言是jsp。)请帮助我 :(这是我编写的代码的一部分:<script type='text/javascript'>function clocks(){ var clk = document.getElementById('TIME').value; var clks = clk.replace('/:/g',''); var ampm = document.getElementById('AMPM').value; var add = 1200; if (clks=="") { alert("You must enter clock time"); } else { if (ampm=='p') { clks=parseFloat(clks) + parseFloat(add); } }}....</script> (adsbygoogle = window.adsbygoogle || []).push({}); 最佳答案 这是在函数中执行此操作的方法:function validate_time( clks ) { // Remove any non-digit characters clks = clks.toString().replace(/\D/g, ''); var is_valid = false; switch (clks.length) { case 1: // This will run if the length is 1 digit. clks = clks + '00'; // Mark this as a valid time. is_valid = true; // stop running the rest break; case 2: if ( parseInt(clks) > 12 ) { alert("Invalid hours value"); } else { is_valid = true; } break; case 3: // Get last two characters var mins = clks.substr(1,2); // offset 1 character, length of 2 characters if ( parseInt(mins) <= 59 ) { clks = '0' + clks; is_valid = true; } else { alert('Invalid minutes value'); } break; case 4: var hours = clks.substr(0,2); var mins = clks.substr(2,2); if ( parseInt(hours) > 12 || parseInt(mins) > 59 ) { alert('Invalid clock time'); } else { is_valid = true; } break; case 5: alert("Invalid clock time"); break; } var data = { clks: clks, is_valid: is_valid }; return data;}要调用它,您需要执行以下操作:var result = validate_time(clks);并且您的结果将是一个传回的对象... result.clks是填充时间,而result.is_valid将是关于输入时间是否有效的true或false值。 (adsbygoogle = window.adsbygoogle || []).push({}); 09-27 06:11