Javascript 使用正则表达式阻止特定单词

Javascript 使用正则表达式阻止特定单词,javascript,regex,Javascript,Regex,我还在学习正则表达式,在使用它时仍然有点困惑 我的情况是: 我需要用javascript或jquery在输入html中阻止一些特定的单词 我需要阻止的词是admin或administrator关键字,我不希望人们在创建新帐户(用户名)时使用像admin或administrator这样的关键字 我需要阻止像admin、4dmin、adm1n、4dm1n甚至admin、4dm1n之类的关键字。无论用户输入的是小写还是大写,甚至是数字,都可以用数字“4”替换字母“A” 现在我的代码是: var inp

我还在学习正则表达式,在使用它时仍然有点困惑

我的情况是: 我需要用javascript或jquery在输入html中阻止一些特定的单词

我需要阻止的词是admin或administrator关键字,我不希望人们在创建新帐户(用户名)时使用像admin或administrator这样的关键字

我需要阻止像admin、4dmin、adm1n、4dm1n甚至admin、4dm1n之类的关键字。无论用户输入的是小写还是大写,甚至是数字,都可以用数字“4”替换字母“A”

现在我的代码是:

var input = document.getElementById("inputUser");
input.onkeyup = function() {
    input.value = input.value = input.value.replace(/(admin|4dmin|adm1n|4dm1n)/,"");
}

请帮助亲爱的大师们,我现在陷入困境,任何帮助我都非常感激。

通过使用字符类和
i
标志(忽略大小写),您可以更轻松地编写无条形的正则表达式:

确保只使用一个
=
-您当前的代码重复
input.value=input.value=


但是请记住,您不应该仅仅依靠Javascript来管理它-在将输入放入数据库之前还要验证输入。

您可以使用正则表达式来尝试这一点

^(?!.*admin|.*4dmin|.*4dm1n).*$

您可以保留一个黑名单单词数组,并使用onkeyup检查
值是否与该数组中的任何单词匹配

var input=document.getElementById(“inputUser”);
var restrictedVal=[“管理”、“4dmin”、“adm1n”、“4dm1n”]
input.onkeyup=函数(){
if(restrictedVal.indexOf(input.value.toLowerCase())!=-1){
input.value=“”;
}
}

您应该在后端阻止这些。在前端阻止它们并不*阻止任何中等聪明的程序员将其发送到您的服务器。感谢大师们的建议,但我对php和javascript编程一无所知。先生,在这个问题中,有相同答案的php代码吗?但是他可能想在前端阻止它,这样用户就可以得到一条正确的错误消息。谢谢你的快速回答,我非常感谢。工作得很有魅力。谢谢师父的回答,我非常感激。谢谢师父的回答,我非常感激:)
^(?!.*admin|.*4dmin|.*4dm1n).*$