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

时间:2016-05-26 10:40:16

标签: javascript regex

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

当我输入姓名时:'&é“é&'é”&'&é“'a'它仍然会回复'true'

name.match(/[a-zA-Z1-9 ]/))

4 个答案:

答案 0 :(得分:6)

您需要将RegExp#test与主播^$一起使用。

/^[a-zA-Z1-9 ]+$/.test(name)
如果找到匹配项,则

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

答案 1 :(得分:3)

它返回true,因为最后一个字符('a')没问题。您的正则表达式不会检查完整输入是否与正则表达式匹配。

试试这个:     ^ [a-zA-Z1-9] * $

答案 2 :(得分:2)

if(!/[^a-zA-Z0-9]/.test(name)) {
  // "your validation message"    
}

试试这个

答案 3 :(得分:1)

这对你有用:

var nameregex = /^([A-Za-z0-9 ]$)/;
var name = document.getElementById('name').value;

if (!name.match(nameregex)) {
    alert('Enter Valid Name!!');
}