我一直都在做這個正則表達式天了,我不能讓它想通了。它要麼通過我放在那裏的所有東西,要麼將所有東西都踢出去,我似乎無法使其發揮作用。無可否認,我對使用Javascript來完成這個複雜的東西感到陌生,所以可能你真的無法做到這一點。正則表達式不匹配正確
我要檢查onkeypress事件發生了什麼輸入到輸入,然後驗證它爲x,y或z。然後從那裏發送它的方式來做其他乾淨的東西。
所以,問題是究竟發生了什麼我不能瞭解有關正則表達式?
這裏是它的一個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;
}
}
};
編輯/ UPDATE: 我試圖做到這一點的按鍵和驗證每個文本輸入individualy然而這是真的在事物的宏偉計劃有點粘糊糊的,不工作了完全正確的。我決定驗證提交的所有文本輸入,並一次全部完成。更新後的代碼如下。
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