Сканирование строки на наличие специальных символов и алфавитов - PullRequest
0 голосов
/ 13 февраля 2011

У меня есть текстовое поле, которое принимает время (максимум 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 голосов
/ 13 февраля 2011

Как вы используете 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>

Первое совпадение с регулярным выражением должно проверять все, что НЕ является цифрой или символом ':', и подавать предупреждение, если оно обнаружит что-либо. Второй будет соответствовать любой строке, которая начинается с одной или нескольких цифр, затем символа «:», затем одной или нескольких цифр, а затем конца строки (это формат, который вы пытаетесь сопоставить).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...