Проверка регулярных выражений Javascript?

Итак, я использую минимальное регулярное выражение [0-9]* для цифровой клавиатуры iPhone в атрибутах шаблона HTML5. У меня также была функция отправки, которая отправляет электронное письмо через сервер. Все работало хорошо, пока я не понял, что он пытается отправить форму независимо от того, пытался ли браузер заблокировать отправку на основе неправильного ввода пользователя.

Итак, я сделал следующее, но не могу заставить его работать:

<script>
function validate(){
    var phone=/[0-9]*/;
    var x=document.forms["form"]["contactnum"].value;
    if (x!=phone){
        alert("Contact Number must be a valid phone number (no dashes)");
        return false;
    }

    else {
        alert("Thank you! We have received your information and will contact you shortly.");
        ajax('{{=URL('new_post')}}',['phone'], 'target');
            return false;
    }
}
</script>

Проблема в том, что я могу заставить его работать, только если я установил if (x==null || x=="") в if утверждение. Если я попытаюсь сопоставить его с любой другой переменной, он всегда будет говорить, что я не сопоставляю [0-9] *. Я уже написал несколько сложных регулярных выражений, но на самом деле не хочу ничего использовать в этой простой форме. Я просто хотел цифровую клавиатуру на iPhone и не отправлять, если это не цифра или нуль. Меня даже не волнует, если они вставят «2» для телефона, лишь бы это была цифра.

Спасибо.

0
задан o_O 1 June 2012 в 18:41
поделиться