В моей форме у меня есть поле, которое спрашивает пользователя, в какое время они хотели бы, чтобы я их называл.JavaScript - RegEx для времени или определенной строки
Код для ввода следующим образом (за исключением <form>
тегов):
<p>
<label>When can we call you?:</label>
<br>
<input type="text" name="contactconvenience" placeholder="HH:MM or "anytime"" onchange="checkCallTime()">
</p>
<div id="callbackwarn"></div>
Я хочу использовать RegEx для проверки того, как пользователь ввел ли время в формате HH: MM или конкретный строка «в любое время», но код, который я использую, не работает.
var callback = /^\d{2}([:]\d{2})$/;
var callbackanytime = str.match(/anytime/g);
function checkCallTime() {
var valid = true;
if ((!callback.test(document.bookingsform.contactconvenience.value)) || (!callbackanytime.test(document.bookingsform.contactconvenience.value))) {
document.bookingsform.contactconvenience.style.border = "1px solid red";
document.getElementById("callbackwarn").innerHTML = "Enter a time in the format HH:MM or type \"anytime\".";
document.bookingsform.contactconvenience.title = "Please enter a time in the format HH:MM or type \"anytime\".";
document.getElementById("callbackwarn").style.display = "block";
valid = false;
} else {
document.bookingsform.contactconvenience.style.border = "1px inset #EBE9ED";
document.bookingsform.contactconvenience.style.borderRadius = "2px";
document.getElementById("callbackwarn").style.display = "none";
}
}
Как вы можете видеть, у меня есть два отдельных выражения RegEx, одно для совпадения времени в формате HH: MM; а другой для сопоставления конкретной строки «в любое время».
В самой функции я использую ||
, чтобы увидеть if
любой из регистров, которые были сопоставлены или нет.
NB: Я знаю, что я использую onchange
, а не onsubmit
, то <form>
тег состоит из onsubmit
вызов на мастер-функции.
Это не работает, если я набираю произвольные символы, он не покажет ошибку. Я удалил '||' и теперь просто использовал ваш один RegEx. Есть идеи? – RoyalSwish
Да, это не работает для меня. Я даже скопировал и вставил ваш код, все равно ничего. – RoyalSwish
Работы нормально для меня? http://jsfiddle.net/alexk/4AZqs/ (нужно щелкнуть по входному сигналу, чтобы поднять событие) –