正则表达式检查连续两个空格?

时间:2012-01-23 03:25:14

标签: javascript regex

我正在尝试验证以下条件:
允许的字符,最大长度为5: A-Z,0-9,空格和(' -
这就是我到目前为止所做的:

/^[a-zA-Z,\d,\-,\(,\']{1,5}$/;

如何检查两个连续的空格?

6 个答案:

答案 0 :(得分:10)

可能会再次与/\s\s/匹配。

答案 1 :(得分:5)

您可以使用重复正则表达式检查两个连续的空格。 即 如果你想匹配重复1到12次的正则表达式,你可以给,

regex{1, 12}

同样地,如果你想匹配一个只重复两次但不多于或少于那个的空间,你可以给出

\s{2}

请记住,这是检查重复模式的一般方法。花括号中的数字将始终尝试查看前一个正则表达式所具有的重复次数。

喝彩!

答案 2 :(得分:1)

所以我的假设是,你想要允许空格字符,但是想要禁止连续的空格(你没有说清楚你想要检查它们的方式)。

你可以用负面的前瞻来实现这一目标。

^(?!.*  )[a-zA-Z\d(' -]{1,5}$

如果有两个连续的空格字符,只需将空格添加到字符类并使用零宽度负前瞻断言来确保表达式失败。

here on Regexr

顺便说一下。我从你的角色类中删除了大部分转义的逗号,并因此将连字符移动到了类的末尾。

答案 3 :(得分:1)

\s{2}已关闭,但\s匹配许多类型的空白。 “{2}”(漂亮的代码格式带走了空间)对我有用。

答案 4 :(得分:0)

你的正则表达式中不需要逗号,它们会导致它行为不端。改为写

/^[a-zA-Z\d\-\(\']{1,5}$/

我不确定你对两个连续空格的意思,因为它似乎不适用于其余的问题。像/ /这样的正则表达式会匹配一对空格,或/\x20\x20//[ ][ ]/以使它们更加明显。

答案 5 :(得分:0)

这是你可以使用的东西:

var string = "SD  D";

if (string.match(/^[A-Z\d\s\(\-']{1,5}$/)) {
    alert(string.match(/\s{2,}/) != null?"Has consecutive spaces of length 2+" : "Does not have consecutive spaces");
}