为什么javascript中的这个正则表达式仍然允许使用特殊字符[a-zA-Z1-9]?

Jim*_*ers 3 javascript regex

我不想允许特殊字符,但这个正则表达式仍允许它们,我做错了什么?

当我输入姓名时:'&é"é&'é"&'&é"'a' 它仍然会给'真''

name.match(/[a-zA-Z1-9 ]/))
Run Code Online (Sandbox Code Playgroud)

Tus*_*har 6

你需要使用RegExp#test^$.

/^[a-zA-Z1-9 ]+$/.test(name)
Run Code Online (Sandbox Code Playgroud)

String#match如果找到匹配则返回一个数组.在您的情况下,a在字符串的末尾找到并返回数组.并且数组在Javascript中是真实的.我相信,数组转换为布尔值,因此返回true.