如何检查输入是否包含任何特殊字符

时间:2014-02-11 13:01:45

标签: javascript asp.net regex ext.net

我有一个问题,即一个字段需要接受所有字符和数字(英语,阿拉伯语等),除了

等特殊字符
  

〜@#$%&安培; *()[] {}<> ^ + =:!?,; / \'

更具体地说,只有特殊字符才会被视为有缺陷。

我在代码下面有一个wirite,

 var textToMatch='$a$';
 var pattern = /[^~!@#$%&*\[\]\{\}\<\>\^+=:,;?/\\]+$/
 var validationResult = pattern.test(textToMatch);

在此代码中,当我在 textToMatch 变量中添加“$$ @”或“a $”时,它很有效(结果:(false)按预期无效) 。 N.B:仅当最后一个字符是任何特殊字符

时才有效

但是当我将任何一个字符(非特殊字符)作为 textToMatch 变量中的最后一个字符时出现失败(结果:(真)有效且不是预期的)例如:“$ a”。

我真的被困在这里。任何帮助将受到高度赞赏。

1 个答案:

答案 0 :(得分:3)

问题是你只检查字符串的结尾。您只需要在模式的开头添加^,因此整个字符串需要由非特殊字符组成

^[^~!@#$%&*\[\]\{\}\<\>\^+=:,;?/\\]+$