我还在学习正则表达式,使用它仍然有点困惑。
我的情况: 我需要使用javascript或jquery来阻止输入html中的某些特定单词。
我需要阻止的字词是管理员或管理员关键字,我不希望人们在创建新帐户(用户名)时使用管理员或管理员等关键字。
我需要阻止像admin,4dmin,adm1n,4dm1n甚至ADMIN,4Dm1N这样的关键字。无论用户输入是小写还是大写,甚至是数字来代替字母" A"用数字" 4"。
现在我的代码是:
var input = document.getElementById("inputUser");
input.onkeyup = function() {
input.value = input.value = input.value.replace(/(admin|4dmin|adm1n|4dm1n)/,"");
}
请帮助亲爱的大师们,我现在已经陷入困境,我非常感谢任何帮助。
答案 0 :(得分:0)
使用字符类和i
标志(忽略大小写),你可以更容易地编写一个没有条形的正则表达式:
input.value = input.value.replace(/[a4]dm[i1]n/ig, '');
确保只使用一个=
- 您当前的代码重复input.value = input.value =
。
但请记住,您不应仅依靠Javascript来管理它 - 在将输入放入数据库之前也要验证输入。
答案 1 :(得分:0)
您可以使用正则表达式尝试此操作
^(?!.*admin|.*4dmin|.*4dm1n).*$
答案 2 :(得分:0)
如果value
与该数组中的任何字匹配,您可以保留一系列列入黑名单的单词和onkeyup检查
var input = document.getElementById("inputUser");
var restrictedVal = ["admin", "4dmin", "adm1n", "4dm1n"]
input.onkeyup = function() {
if (restrictedVal.indexOf(input.value.toLowerCase()) !== -1) {
input.value = "";
}
}

<input type="text" id="inputUser">
&#13;