正则表达式不允许特殊字符(Javascript)

时间:2013-11-12 15:02:41

标签: javascript regex

我有以下要求,只允许大写字母和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")

}

3 个答案:

答案 0 :(得分:12)

根据您提供的内容,这可能适合该法案。它将确定是否有任何字符不在字符类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");
}

答案 1 :(得分:1)

此链接可能会有所帮助:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions

它有很多关于JS Regexps的信息。

对于美元符号($),正则表达式语法为:\$。您需要转义特殊字符,以便将其作为文字读取。我相信其他特殊字符的语法是相同的。

答案 2 :(得分:1)

这可能会有所帮助。 javascript regexp remove all special characters  如果您想要的唯一字符是数字,字母和','那么您只需要将所有不是那些字符的字符填充

$(this).val().replace(/[^\w\s\][^,]/gi, '')