正则表达式捕捉期间符号

时间:2014-02-04 10:52:26

标签: javascript regex

我的javascript中有一个用于捕获无效数据条目的条件。不允许连续的字母,不允许使用空格,我也不想允许任何非字母数字字符。这似乎有效但由于某种原因,句号符号'。'不会被捕获为非字母数字。

if ((/\s/.test(myVar)) || (/[A-Z]{2}/.test(myVar)) || (/^[A-Z0-9]+$/.test(myVar)) ) { 
        valid = false;
}

2 个答案:

答案 0 :(得分:0)

你的条件非常错误。 @Deceze非常清楚地解释了你正在做什么样的检查而不是你认为你在做什么。

第一个正则表达式没问题,但第二个应该是这样的:

/([A-Z])\1/

你的正则表达式匹配任何两个alphas,而不仅仅是两个连续的字母。

第三个条件也很奇怪,试试这个:

/[^A-Z0-9]/

请注意,这完全消除了第一次检查的需要 - 空格不是字母也不是数字。

当然,你可以把这两个测试合并到一个测试中,但我会把它留给你:)

答案 1 :(得分:0)

我会这样做:

if (/[A-Z]{2}|[^A-Z0-9]/.test(myVar)) { 
    valid = false;
}