[英]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.value
和str.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.