正则表达式需要10位数而不考虑空格

时间:2011-08-19 19:18:44

标签: regex salesforce crm

即使有空格,我也需要一个正则表达式将数字数字限制为10.

例如,它允许06 15 20 47 230615204723相同。

我尝试过:^\d{10}$,但如何忽略空格?

此外,该号码应以0607开头。 (编者注:最后一项要求来自OP的评论。)

6 个答案:

答案 0 :(得分:6)

这将在大多数正则表达式系统中执行。 (你需要说明你正在使用的语言!)

/^\s*(0\s*[67]\s*(?:\d\s*){8})$/


但假设你真的只想要这个数字,那就继续把它分成两步。

例如,在JavaScript中:

var s = ' 06 15 20 47   34 ';
s = s.replace (/\s/g, "");
isValid = /^0[67]\d{8}$/.test (s);

答案 1 :(得分:2)

你可以这样做:

"^(\d *){10}$"

答案 2 :(得分:1)

我有同样的问题,我注意到如果我将每个数字分组,前后填充任意数量的空格,我得到了我正在寻找的解决方案。在此示例中,忽略所有空格

^(\s*\d\s*){10}$

eg. "1234567890"
    " 12  34 567   89 0    "

在一个更复杂的例子中,这忽略了所有空格,破折号,圆括号和空格。

^([\s\(\)\-]*\d[\s\(\)\-]*){10}$

eg. "(123)456-7890"
    "   (   12 (3)( - 45 - 6-78 )(90 (((--  "

在这里测试它们,它将为您提供给定系统的代码: http://www.myregextester.com/index.php

答案 3 :(得分:0)

稍微好一点:

"^\s?(\d\s?){10}$"

其中\ s是任何空格,\ d是数字。这允许前导以及固定和尾随空格。

答案 4 :(得分:0)

(\s*\d\s*){0,10}

这应允许数字周围的前导和尾随空格,并匹配0到10位数。

答案 5 :(得分:0)

var str = " a b c d e f g "; 
var newStr = str.replace(/\s+/g, '');