繁体   English   中英

使用正则表达式检查管理员和用户的输入

[英]Checking input for admin and user using Regular Expression

我正在尝试创建一个函数,如果它有 admin 的输入,它将检查用户的输入。 即使不正确,它也会继续显示正确​​,但是当我对用户输入和管理员的值进行硬编码时,它会检查输出是正确还是不正确。 我希望用户输入值并检查它是正确还是错误。

 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.valuestr.value在您的sample()函数中没有值,因为它们没有在函数作用域中定义。 从输入文本框中读取这些值的代码行应放置在sample()函数体内。

另一个问题是,当您检查一个带有正则表达式的字符串是否包含另一个字符串时,您应该考虑str2.value特殊字符。 如果没有正确转义它, (? ,甚至.会产生不受欢迎的行为。您可以使用来自包含不区分大小写的帖子here的简单非正则表达式解决方案,因为您在这里使用固定字符串值。

 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>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM