#jquery #asp.net #regex
#jquery #asp.net #регулярное выражение
Вопрос:
Я пытаюсь использовать jQuery для изменения цвета текстового поля при сбое средства проверки регулярных выражений.
Вот функция, которую я нашел в Интернете, но я не знаю, как изменить ее для использования регулярных выражений.
<script type="text/javascript">
function ValidateTextBox(source, args)
{
var is_valid = $("#TextBox1").val() != "";
$("#TextBox1").css("background-color", is_valid ? "white" : "red");
args.IsValid = is_valid;
}
</script>
Кроме того, я не понимаю, в чем смысл
args.IsValid = is_valid;
Находится в функции.
Вот что я пытаюсь сейчас:
<script type="text/javascript">
function ValidateTextBox(source, args) {
var is_valid = false;
//Regex goes here
var regex = [A-Za-z];
if (regex.test($('#TextBox1').val())) {
//If input was correct
is_valid = true;
}
else {
//If input is not correct
$("#TextBox1").css("background-color" : "red");
}
args.IsValid = is_valid; //Returns validity state
}
</script>
Ответ №1:
function ValidateTextBox(source, args)
{
//var is_valid = $("#TextBox1").val() != ""; //returns true or false
//add regex test, lots of way and set result to is_valid
var is_valid = false;
var rege = /^([A-Za-z0-9_-.]) @([A-Za-z0-9_-.]) .([A-Za-z]{2,4})$/; //example
if(rege.test($('#TextBox1').val())){
is_valid = true;
}
$("#TextBox1").css("background-color", is_valid ? "white" : "red");
args.IsValid = is_valid; //tells validatin engine if this item is valid or not
}
Комментарии:
1. Некоторые вещи, которые я не понимаю. var is_valid = $(«#TextBox1»).val() Не должен ли он быть источником вместо #TextBox1? Поскольку источником является объект, вызывающий событие. Кроме того, где мне ввести регулярное выражение? Я действительно новичок в javascript.
2. Переменная rege имеет регулярное выражение. $(«#TextBox1»).val() — это то, как jQuery проверяет значение элемента.
3. Хорошо, я думаю, что понимаю функцию, только одна вещь, о которой я все еще смущен. Если вы используете метод «rege.test», он установит для is_valid значение true, если ввод правильный, верно? в противном случае это меняет цвет фона? Разве там не должно быть другого?
Ответ №2:
Регулярное выражение JavaScript должно быть окружено //
примерно так.
//Regex goes here
var regex = /[A-Za-z]/;