正则表达式为jquery中的字母数字和特殊字符

时间:2011-12-07 05:54:16

标签: javascript jquery regex

我试图为我的地址列创建一个正则表达式,代码为:

var str = "97sadf []#-.'";
var regx = /^[a-zA-z0-9\x|]|[|-|'|.]*$/;

if(str.match(regx))
   document.write('Correct!');
else
    document.write('Incorrect!');

我想要的特殊字符][#-.给定的代码返回正确的匹配但如果我添加另一种特殊字符,如@%那么我得到的正确结果,但我想要结果不正确。

我不知道我哪里做错了请帮助我做对..

编辑:对不起家伙,但我必须与你讨论的一件事就是没有必要输入我提到的特殊字符][#-.,但是如果有人输入其他人那么给定的特殊字符则应该返回错误。

1 个答案:

答案 0 :(得分:2)

正确的正则表达式(假设你想要大写字母,小写字母,数字,空格和特殊字符[].-#')是:

var regx = /^[a-zA-Z0-9\s\[\]\.\-#']*$/

有些事情会破坏您的代码。

首先,[]-.具有特殊含义,必须进行转义(以\为前缀)。

\x检查换行符,我们需要空格(\s)。

接下来,让我们看一下结构;为简单起见,我们简化为^[abc]|[def]*$。 (abcdef是你的两个字符类型块)。由于*附加到第二个块,因此它表示[abc]或任意数量的[def]的一个实例。

最后,我们在括号内不需要|,因为它们已经意味着包含在其中的一个字符(已经表现得像或)。