Я думаю, что это сузилось до того, что я был моим кодом JavaScript. У меня есть работа с предупреждением, но теперь я хочу использовать свой настоящий код JavaScript и его провал. Мой босс дал мне фрагмент старого кода, который работает для другой страницы/элемента управления. Поэтому я пытаюсь переработать этот код и использовать его здесь. В любом случае мне нужно сделать эти три вещи в моем JavaScript:
Я уже создал aС# версию этой функции здесь:
bool hasLength= password1.Length > 7;
bool hasDigit = password1.Any(c => char.IsDigit(c));
bool hasCapital = password1.Any(c => char.IsUpper(c));
if(!hasDigit || !hasCapital || !hasLength)
{
oEr.Number = (int)ErrorClass.ErrorNumber.GeneralError;
oEr.Message = "Password must be at least 8 characters with at least one number, one capital letter and no symbols.";
}
Код выше работает, но его в С#, и они хотят, чтобы я написал его в JavaScript. Вот что я имею в настоящее время:
string jsPasswordScript = "onchange() " +
"var pw = document.getElementById('AHA_Password1').value.toString(); "+
"var passw =/^ (?=.*[0 - 9])(?=.*[a - z])(?=.*[A - Z])(?=.{ 8,})/; "+
"var res = passw.test(pw); " +
"if (res) [| label_AHA_Password3.innerText = '';|] "+
"else "+
"[|label_AHA_Password3.innerText='Password must be at least 8 characters with at least one number, one capital letter and no symbols.';"+
" document.getElementById('AHA_Password1').focus();|]];";
oTB.ID = "AHA_Password1";
oTB.TextMode = TextBoxMode.Password;
oTB.TabIndex = 21;
oCell = new HtmlTableCell();
oTB.Attributes.Add("OnChange", jsPasswordScript);
oCell.Controls.Add(oTB);
oRow.Cells.Add(oCell);
В настоящее время JavaScript не работает. Он работал, когда я использовал предупреждение как тест. Поэтому что-то должно быть неправильно с JavaScript. Я не очень хорошо разбираюсь в JavaScript, может ли кто-нибудь увидеть мою ошибку в JavaScript или предложить лучший маршрут?
редактировать
Я обновил свой код JavaScript. Я собираюсь проверить это, но вот что я придумал для своего нового js-кода.
function passwordvalidation() {
var password = document.getElementById('password1').value.toString();
var hasLength = password.length > 7;
var hasDigit = System.Linq.Enumerable.from(password).any(function(c) {
return System.Char.isDigit(c);
});
var hasCapital = System.Linq.Enumerable.from(password).any(function(c) {
return Bridge.isUpper(c);
});
if (!hasDigit || !hasCapital || !hasLength) {
label_AHA_Password3.innerText = "Password must be at least 8 characters with at least one number, one capital letter and no symbols.";
}
return undefined;
}
Есть ошибки в JavaScript, которые вы добавляете к элементу управления:
OnChange
, поэтому нет необходимости в onchange()
в начале.{}
для оператора if
, а не квадратные скобки с трубами [ | | ]
[ | | ]
[ | | ]
.Попробуй это:
string jsPasswordScript = "var pw = document.getElementById('AHA_Password1').value.toString(); var passw = /^ (?=.*[0 - 9])(?=.*[a - z])(?=.*[A - Z])(?=.{ 8,})/; var res = passw.test(pw); if(res) { label_AHA_Password3.innerText = ''; } else { label_AHA_Password3.innerText = 'Password must be at least 8 characters with at least one number, one capital letter and no symbols.'; document.getElementById('AHA_Password1').focus(); }";