gpt4 book ai didi

javascript - C# 和 Javascript : Help adding javascript to ctrl

转载 作者:行者123 更新时间:2023-11-30 14:47:46 24 4
gpt4 key购买 nike

我想我已经将问题缩小到我的 JavaScript 代码。我有一个警报,但现在我想使用我的真实 JavaScript 代码及其失败。我的老板给了我一些适用于不同页面/控件的旧代码片段。所以我正在尝试回收该代码并在此处使用它。不管怎样,我需要在我的 JavaScript 中做这三件事:

  • 密码长度必须至少为 8 个字符
  • 密码必须至少包含一个数字
  • 密码必须至少包含一个大写字母

我已经在这里创建了这个函数的 c# 版本:

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.";
}

上面的代码有效,但它是用 c# 编写的,他们希望我用 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(); }";

关于javascript - C# 和 Javascript : Help adding javascript to ctrl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48631024/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com