Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何编写至少匹配10个数字且只能有数字和感叹号的正则表达式_Javascript_Regex - Fatal编程技术网

Javascript 如何编写至少匹配10个数字且只能有数字和感叹号的正则表达式

Javascript 如何编写至少匹配10个数字且只能有数字和感叹号的正则表达式,javascript,regex,Javascript,Regex,我需要编写一个符合以下条件的正则表达式: 至少10位 只能包含数字和感叹号 我可以编写一个匹配十位数字的正则表达式,如下所示: ^([0-9]){10,}$ 或者只匹配数字和感叹号: ^[0-9!]$ 但我不知道如何把这两个结合在一起 以下是一个有效的例子: 152!1582!!1827 4!!!!!!!!!!!!!3! 以下是无效的示例: 152!1582!!1827 4!!!!!!!!!!!!!3! ^!*[0-9]!*{10,}$ 可能以零或更多开头!,然后至少重复10次,形成

我需要编写一个符合以下条件的正则表达式:

至少10位 只能包含数字和感叹号 我可以编写一个匹配十位数字的正则表达式,如下所示:

^([0-9]){10,}$
或者只匹配数字和感叹号:

^[0-9!]$
但我不知道如何把这两个结合在一起

以下是一个有效的例子:

152!1582!!1827
4!!!!!!!!!!!!!3!
以下是无效的示例:

152!1582!!1827
4!!!!!!!!!!!!!3!
^!*[0-9]!*{10,}$

可能以零或更多开头!,然后至少重复10次,形成一个数字和零或更多

^*\d*{10,}$应该满足您的需要

功能验证{ var字段=document.getElementByIdinputField; console.log/^!*\d!*{10,}$/.testfield.value; }
验证您的意思是数字,而不是数字。还有,为什么在第二次尝试中,你省略了括号和大括号?有很多类似的问题。使用在开头锚定的?=?:\D*\D{10}前瞻。消费模式将保持^[\d!]+$。将它们组合在一起,得到^?=?:\D*\D{10}[\D!]+$。如果您只允许1!,像^?=?:\D*\D{10}\D*?:\d*?$感叹号是否可以散布在数字之间,或者必须与数字有特定的关系?@trincot,是的,数字。我省略了它们,因为如果我有十个感叹号,正则表达式将匹配,这不是我想要的10个或更多数字,如果超过10,则允许一个或多个感叹号?或10个字符,其中至少有一个是数字,其余可能是数字或感叹号?或相同的东西,但略短:^*\d*{10,}$.Aha,所以拖尾!也允许使用。问题中没有提到这一点。@WiktorStribiżew-是的,OP最终在回复我上述评论的评论中确认了这一点,但没有更新问题本身。