当前位置: 首页 > 知识库问答 >
问题:

具有现有正则表达式的至少一个数字

蒋无尘
2023-03-14

我的条件...

  1. 字母数字值
  2. 只允许使用一个空格或连字符
  3. 必须包含至少一个数字
  4. 不能以空格或连字符开头或结尾
  5. 最少2个字符,最多16个字符,不包括空格/连字符

到现在为止,我准备了正则表达式

^(?=.{2,16}$)([a-zA-Z\d]+)([\s^\-]|[\-^\s]|[a-zA-Z\d]*)([a-z[A-Z\d]+)

它只遗漏了第三点。

测试字符串有效

"test one"
"test 2two"
"test3 three222"
"3test-4four"

无效

"-test"
"test-d f"

共有1个答案

江洲
2023-03-14

您可以将此正则表达式与2个先行条件一起使用:

^(?=(?:[a-zA-Z\d][ -]?){2,16}$)(?=[^\d\n]*\d)[a-zA-Z\d]+(?:[ -][a-zA-Z\d]+)?$

正则表达式演示

PS:请注意,test one是一个无效的字符串,因为它没有任何数字。

正则表达式详细信息:

  • ^:开始
  • (? =(?:[a-zA-Z\d][ -]?){ 2,16}$):积极前瞻以确保我们有2到16个长度的字母数字字符
  • (?=\D*\d):积极前瞻以确保我们至少有一个数字
  • [a-zA-Z\d] (?:[ -][a-zA-Z\d] )? :匹配任何以字母数字开头,可选后跟单个空格或连字符并以字母数字结尾的测试
  • $:结束
 类似资料:
  • null null 我想在ng-pattern中使用这个regex来检查来自用户的文本输入。

  • 我在Groovy中使用正则表达式。 我试图用以下规则来公式化正则表达式。 必须正好是17个字符 必须只包含字母和数字 必须包含至少1个alpha和1个数字字符 不能包含字母'I'、'O'或'Q'(大写或小写) 用下面的表达,我想我就快到了。下面的正则表达式似乎满足了要求1、2和3。 我曾尝试添加要求4,但没有成功。谁能帮我一下吗? 谢谢

  • 我在SO和web上都发现了很多关于这个主题的变化,但大多数(如果不是全部的话)要求至少一个字母和一个数字。我至少需要一封信。我已经试过了,但还没有成功,我需要的是字符串只包含字母、字母和数字(任意顺序),允许使用破折号和空格,但不能在字符串的开头或结尾。下面是它现在的样子: 如何添加检查是否至少有一个字符? 不管它是在开头还是结尾,或者它和数字之间是否有空格或破折号。只要至少有一个字符。

  • 问题内容: 我想将所有表达式与一个空格完全匹配。目前,我正在使用。但是,这似乎不是一个很好的方法。 问题答案: 为什么不?很好,有点复杂:

  • 要匹配至少包含一个字母或数字的字符串,JavaScript正则表达式是什么?这至少需要一个字母数字字符(至少一个字母或至少一个数字)。

  • 问题内容: 深入研究堆栈溢出后,我发现了一些代码来检查字符串是否为字母数字且长于8个字符。效果很好。现在,如果包含至少2个数字,如何使它返回true?我想我必须在某处添加。 问题答案: 您不需要单独的if条件。单个正则表达式将为您完成所有工作。