在jquery中使用有限特殊字符的正则表达式

时间:2014-01-16 14:46:58

标签: javascript jquery html regex validation

我想要所有字母数字数据+ 只允许以下4个特殊字符。

' (single quote)
- (hyphen)
. (dot)
 single space

我试过了:

var userinput = $(this).val();
var pattern = [A-Za-z0-9_~\-!@#\$%\^&\*\(\)]+$

if(!pattern.test(userinput))
{
  alert('not a valid');
}​

但它不起作用。

2 个答案:

答案 0 :(得分:3)

首先,您需要将字符串括在/中以将其解释为正则表达式:

var pattern = /[A-Za-z0-9_~\-!@#\$%\^&\*\(\)]+$/;

然后,您必须删除一些不允许的字符(正则表达式匹配的数量超过您指定的数量):

var pattern = /^[A-Za-z0-9 '.-]+$/;

第二个是你需要的。完整代码:

var userinput = $(this).val();
var pattern = /^[A-Za-z0-9 '.-]+$/;

if(!pattern.test(userinput))
{
  alert('not a valid');
}​

此外,请检查this指向的内容。

答案 1 :(得分:0)

“不工作”不是对您的问题的有用描述。

我建议这个定期表达:

^[a-zA-Z0-9\'\-\. ]+$