Regex 用于在字符串中阻止3个以上数字的正则表达式
我试图阻止任何包含3个以上数字的字符串,并阻止使用特殊字符。我把特殊角色部分记下来了。我只是错过了数字部分 例如:Regex 用于在字符串中阻止3个以上数字的正则表达式,regex,Regex,我试图阻止任何包含3个以上数字的字符串,并阻止使用特殊字符。我把特殊角色部分记下来了。我只是错过了数字部分 例如: "Hello 1234" - Not Allowed "Hello 123" - Allowed 我尝试了以下方法: /^[!?,A-Za-z0-9]+$/ /((^[!?,A-Za-z]\d)([0-9]{3}+$)/ /^((\d){2}[a-zA-Z0-9,.!?])*$/ 最后一个是我得到的最接近的,因为它可以防止任何特殊字符和任
"Hello 1234" - Not Allowed
"Hello 123" - Allowed
我尝试了以下方法:
/^[!?,A-Za-z0-9]+$/
/((^[!?,A-Za-z]\d)([0-9]{3}+$)/
/^((\d){2}[a-zA-Z0-9,.!?])*$/
最后一个是我得到的最接近的,因为它可以防止任何特殊字符和任何数字被输入
我已经看过以前的帖子了,但是我的文章不够
编辑以澄清
本质上,我试图找到一种方法来阻止客户在表单上输入PII。不允许在一个字符串中包含超过3个数字的提交
Hello1234-不允许
12345-不允许
1111-不允许
当用户输入字符串时,注释部分中没有任何位置的数字总数应超过3个。关于您尝试的模式
模式匹配所列任何一项的1+倍,包括1个或多个数字^[!?,A-Za-z0-9]+$
如果支持((^[!?,A-Za-z]\d)([0-9]{3}+$)
,则模式匹配字符类中的单个字符,1位后跟3位{3}+
模式重复0多次,匹配字符类中列出的2位数字和1位数字^((\d){2}[a-zA-Z0-9,.!?])*$
如果支持在一行中声明非4位数字,则可以使用负前瞻
^(?!.*\d{4})[a-zA-Z0-9,.!? ]+$
如果总共不能有4位数字,但出现0-3次:
^[a-zA-Z,.!?]*(?:\d[a-zA-Z,.!?]*){0,3}$
解释
字符串的开头^
匹配列出的任何项的0+倍(无数字)[a-zA-Z,.!?]*
重复0-3次,匹配单个数字,后跟可选列出的字符(同样没有数字)(?:\d[a-zA-Z,.!?]*){0,3}
字符串结尾$
^(?!$)[a-zA-Z,.!? ]*(?:\d[a-zA-Z,.!? ]*){0,3}$
有关您尝试的模式,请参见另一个
模式匹配所列任何一项的1+倍,包括1个或多个数字^[!?,A-Za-z0-9]+$
如果支持((^[!?,A-Za-z]\d)([0-9]{3}+$)
,则模式匹配字符类中的单个字符,1位后跟3位{3}+
模式重复0多次,匹配字符类中列出的2位数字和1位数字^((\d){2}[a-zA-Z0-9,.!?])*$
如果支持在一行中声明非4位数字,则可以使用负前瞻
^(?!.*\d{4})[a-zA-Z0-9,.!? ]+$
如果总共不能有4位数字,但出现0-3次:
^[a-zA-Z,.!?]*(?:\d[a-zA-Z,.!?]*){0,3}$
解释
字符串的开头^
匹配列出的任何项的0+倍(无数字)[a-zA-Z,.!?]*
重复0-3次,匹配单个数字,后跟可选列出的字符(同样没有数字)(?:\d[a-zA-Z,.!?]*){0,3}
字符串结尾$
^(?!$)[a-zA-Z,.!? ]*(?:\d[a-zA-Z,.!? ]*){0,3}$
请看另一个假设你的意思是假设你的意思是这是我的两分钱:
^(?!(.*\d){4})[A-Za-z ,.!?\d]+$
在线查看
-启动字符串锚定^
-打开一个负面展望。(?!
-打开捕获组。(
-将除换行以外的任何内容匹配到一个数字*\d
-关闭捕获组并匹配它4次){4}
-关闭反向前瞻)
-1个指定类中的字符[A-Za-z,.!?\d]+
-结束字符串锚定$
我想应该包括你所描述的内容。这是我的两分钱:
^(?!(.*\d){4})[A-Za-z ,.!?\d]+$
在线查看
-启动字符串锚定^
-打开一个负面展望。(?!
-打开捕获组。(
-将除换行以外的任何内容匹配到一个数字*\d
-关闭捕获组并匹配它4次){4}
-关闭反向前瞻)
-1个指定类中的字符[A-Za-z,.!?\d]+
-结束字符串锚定$
我认为应该包括您所描述的内容。连续超过3个数字,或者总共超过3个数字?
a12a34
允许吗?我只想允许文本和、,。?!然后字符串中的任意位置最多有3个数字。所以H3LL0 123不会被允许对吧,我想现在一切都清楚了=)。我还添加了一个asnwer。一行超过3个数字,或者总共超过3个数字?a12a34
允许吗?我只想允许文本和、,。?!然后字符串中的任意位置最多有3个数字。所以H3LL0 123不会被允许对吧,我想现在一切都清楚了=)。我还添加了一个asnwer。如何阻止“test123”。我正在测试,它仍然允许这样做。到目前为止,这是最好的工作虽然@tristannohr字符串test123
conatins为3位,不超过3位,因此它是有效的。啊,我的错误。我真不敢相信我错过了。非常感谢你的帮助!我已将您标记为最佳答案。该块如何显示“test123”。我正在测试,它仍然允许这样做。到目前为止,这是最好的工作虽然@tristannohr字符串test123
conatins为3位,不超过3位,因此它是有效的。啊,我的错误。我真不敢相信我错过了。非常感谢你的帮助!我认为你是最好的答案