javascript - 使用正则表达式检查管理员和用户的输入
问题描述
我正在尝试创建一个函数,如果它有管理员的输入,它将检查用户的输入。即使它不正确,它也会继续显示正确,但是当我对用户输入的值和管理员进行硬编码时,它会检查输出是否正确。我希望用户输入值并检查它是否正确。
var str = document.getElementById('user');
var str2 = document.getElementById('admin');
var reg = new RegExp(str2.value, "i");
var result = str.value.match(reg);
function sample() {
if (result) {
document.getElementById('checker').innerHTML = "correct";
} else {
document.getElementById('checker').innerHTML = "wrong";
}
}
<textarea id="admin" placeholder="admin" rows="5"></textarea>
<textarea id="user" placeholder="user" rows="5"></textarea>
<textarea id="checker"></textarea>
<br>
<button style="height: 50px; width: 100px;" onclick="sample()">Check</button>
解决方案
str2.value
and在你的函数中str.value
没有任何值,sample()
因为它们没有在函数范围内定义。从输入文本框中读取这些值的代码行应放在sample()
函数体内。
另一个问题是,当您使用正则表达式检查搅拌是否包含另一个字符串时,您应该考虑str2.value
. 如果没有正确地转义它,(
或者?
,甚至.
会产生不受欢迎的行为。您可以在此处使用包含不区分大小写的帖子中的简单非正则表达式解决方案,因为您在此处使用固定字符串值。
function sample() {
var str = document.getElementById('user');
var str2 = document.getElementById('admin');
if (str.value.toUpperCase().indexOf(str2.value.toUpperCase()) === -1) {
document.getElementById('checker').innerHTML = "correct";
} else {
document.getElementById('checker').innerHTML = "wrong";
}
}
<textarea id="admin" placeholder="admin" rows="5"></textarea>
<textarea id="user" placeholder="user" rows="5"></textarea>
<textarea id="checker"></textarea>
<br>
<button style="height: 50px; width: 100px;" onclick="sample()">Check</button>
推荐阅读
- javascript - QWebEngine 的 CORS 问题:可能的“Origin”值是否有限制?
- angular - 不明白为什么这个布尔比较失败
- swift - NSMutableAttributedString: 'init(string:attributes:)' 的模糊使用
- doctrine-orm - Symfony 4:通过反序列化实体更新现有实体最终会得到一个新的相关项或 ORMInvalidArgumentException
- google-api - 使用 GTM API v2 创建在 {{variable}} == 'false' 时触发的 Google 跟踪代码管理器触发器
- wpf - 用于组合框模板的 WPF 高亮画笔
- javascript - 如何识别 HandleErrorAttribute OnException 中的 javascript fetch()?
- python - 如何计算十进制中零的数量?
- php - 如何在下面的代码中添加确认密码部分?
- javascript - JavaScript 函数在本地工作但不在测试部署中