Ive работало над этим регулярным выражением в течение нескольких дней, и я не могу понять. Он либо передает все, что я там вставляю, либо выкидывает все, и я не могу заставить его функционировать. По общему признанию, я новичок в этом комплексе вещей с Javascript, так что может быть, вы действительно не можете это сделать.Regex не соответствует должным образом
Я хочу проверить onkeypress, что было введено во вход, а затем проверить его на x, y или z. Затем оттуда отправляйте его по своему пути, чтобы делать другие аккуратные вещи.
Итак, вопрос в том, что я не понимаю о RegExp?
Для этого используется FIDDLE.
function val() {
var gradeIn = document.querySelectorAll("#letGrade input[type=text]");
var checkGrade = new RegExp(/[xyz]/gi);
for (var i = 0; i < gradeIn.length; i++) {
if (!checkGrade.test(gradeIn.value)) {
alert ("This must be X, Y, or Z");
return false;
} else {
return true;
}
}
};
EDIT/UPDATE: Я пытался сделать это при нажатии клавиш и проверки каждого ввода текста individualy однако это действительно своего рода болотистый в великой схеме вещей, и не работает точно правильно. Я решил проверить все текстовые входы onsubmit и все сразу все. Обновленный код приведен ниже.
function calcGPA() {
var grades = document.querySelectorAll("#letGrade input[type=text]");
var contacts = document.querySelectorAll("#conHours input[type=text]");
var gVals = [];
var cVals = [];
var failGrade = "The Letter Grade input may only be A, B, C, D or F";
var failHours = "The Contact Hours input may only be 1, 2, 3, 4 or 5";
var checkGrade = /^[ABCDF]/;
var checkhours = /^[12345]/;
for (var i = 0; i < grades.length; i++) {
if (!checkGrade.test(grades[i].value)) {
alert(failGrade);
return false;
}
if (!checkhours.test(contacts[i].value)) {
alert(failHours);
return false;
}
gVals.push(grades[i].value);
cVals.push(contacts[i].value);
}
//Other cool stuff happens here
};
Теперь просто закончить конверсионный кусок для букв цифр и математической части. Благодарим вас за помощь!
регулярное_выражение конструктор принимает строку и флаги разделены запятой – 1252748