Regex 正则表达式需要10位数字,不考虑空格

Regex 正则表达式需要10位数字,不考虑空格,regex,salesforce,crm,Regex,Salesforce,Crm,我需要一个正则表达式将数字限制为10,即使有空格 例如,它允许0615204723与0615204723相同 我试过:^\d{10}$,但我如何忽略空格 此外,数字应以06或07开头。(编者按,最后一项要求来自OP的评论。)您可以: "^(\d *){10}$" 稍好一点: "^\s?(\d\s?){10}$" 其中\s是任何空格,\d是数字。这允许使用前导空格、中缀空格和尾随空格 (\s*\d\s*){0,10} 这应该允许在数字周围使用前导空格和尾随空格,并匹配0到10个数字。这将在大

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

例如,它允许
0615204723
0615204723
相同

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

此外,数字应以
06
07
开头。(编者按,最后一项要求来自OP的评论。)

您可以:

"^(\d *){10}$"
稍好一点:

"^\s?(\d\s?){10}$"
其中\s是任何空格,\d是数字。这允许使用前导空格、中缀空格和尾随空格

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

这应该允许在数字周围使用前导空格和尾随空格,并匹配0到10个数字。

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


但是假设你真的只想要这个数字,然后继续,把它分成两个步骤

例如,在JavaScript中:

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

我也有同样的问题,我注意到如果我将每个数字分组,前后填充任意数量的空格,我就得到了我想要的解决方案。在本例中,忽略所有空间

^(\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 (((--  "
在此处进行测试,它将为您提供给定系统的代码:

你不想用
\s*
表示零或多个空格,而不是
\s?
表示零或一吗?请告诉我,这个数字必须是10位数字,但从06或07开始,同时忽略空格,我这样做了^(0[6-7][0-9]*{10}$,但似乎不起作用。谢谢大家的回答,我尝试了这个方法,它可以避免空格,但当我添加条件使数字以06或07开头时,它不起作用,就像^(0[6-7][0-9]*){8}$,对吗?(对不起,我是新来的正则表达式)谢谢,但这不会忽略spacesHow。你会使用这个正则表达式吗?在perl中,这将非常简单。您好,我没有使用任何Language。我是在Salesforce(Cloud cmputing CRM)上工作的,我只需要编写一个正则表达式。我试过你的,它在写06之后允许空格,例如06 15 20 47 41,但是它不允许0和6之间的空格。你看到了吗?更新了答案,允许0和6之间的空格。是的,你正在使用一种语言。问题应该说明regex用于Salesforce CRM。我们中的一些人会知道Java语法是最有可能被允许的。这对我来说是最好的答案,注意到量词:{8}是8而不是10很有用,因为需要以06或07开头,这两个数字占两位。我的要求是数字只能是11位数字,所以添加了{11},但当我需要它以0开头时,正则表达式显然坏了。。将其更改为{10}从而修复了它。请详细说明此代码如何回答此问题(此答案位于低质量帖子审阅队列中)。
^([\s\(\)\-]*\d[\s\(\)\-]*){10}$

eg. "(123)456-7890"
    "   (   12 (3)( - 45 - 6-78 )(90 (((--  "
var str = " a b c d e f g "; 
var newStr = str.replace(/\s+/g, '');