禁止特殊字符的正则表达式(Javascript)

11

我有一个要求,只允许在 JavaScript 表单中使用大写字母和逗号。我不确定如何检查特殊字符和脚本标签。我已经编写了以下代码。我不想允许像 $,%,& 等字符。

var upperCase= new RegExp('[A-Z]');
var lowerCase= new RegExp('^[a-z]');
var numbers = new RegExp('^[0-9]');

if($(this).val().match(upperCase) && $(this).val().match(lowerCase) &&   $(this).val().match(numbers))  
{
    $("#passwordErrorMsg").html("OK")

}

5
问题是什么? - tjons
你可以尝试使用/[^a-zA-Z0-9]/.test(str),如果任何字符不在a-Z、A-Z或0-9中,则返回true,但请注意,这也会将é或类似字符视为被拒绝的符号。 - megawac
3个回答

23

根据你提供的信息,这可能符合要求。它将确定是否有任何字符不在a-z、A-Z或0-9字符类中,但请注意,它也会将é或类似字符视为被拒绝的符号。

因此,如果值为'test_'或'test a',它将失败,但对于'testa',它将通过。如果您希望接受空格,请将正则表达式更改为/[^a-zA-Z0-9 ]/

if(!/[^a-zA-Z0-9]/.test($(this).val())) {
    $("#passwordErrorMsg").html("OK");
}

3

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接