扫描字符串以获取特殊字符和字母

时间:2011-02-13 07:33:20

标签: javascript string

我有一个文本框,它接受格式为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>

1 个答案:

答案 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>

第一个正则表达式匹配应检查任何非数字或“:”字符,并在发现任何内容时发出警报。第二个匹配任何以一个或多个数字开头的字符串,然后是':'字符,然后是一个或多个数字,然后是字符串的结尾(这是您尝试匹配的格式)。