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

Regex是否检查至少3个字符?

苏弘盛
2023-03-14

我有这个正则表达式只允许字母数字字符。

如何检查字符串是否至少包含3个字母字符。

我当前的正则表达式,

if(!/^[a-zA-Z0-9]+$/.test(val))

我想强制执行字符串以确保至少有3个连续的字母字符;

111 // false
aaa1 // true
11a // false
bbc // true
1a1aa // false

共有3个答案

郭阳泽
2023-03-14

这应该可以完成工作:

^([0-9]*[a-za-z]){3,}[0-9]*$

它检查至少3个“零或更多数字1 Alpha”零或更多数字序列。

叶健柏
2023-03-14

为了在任何地方实施三个字母字符,

/(.*[a-z]){3}/i

应该足够了。

编辑。啊,你已经编辑了你的问题,说三个字母字符必须是连续的。我还看到您可能希望强制所有字符都应该与您“接受”的字符之一匹配。那么,前瞻可能是最干净的解决方案:

/^(?.*[a-z]{3})[a-z0-9]+$/i

注意,我使用了不区分大小写的修饰符< code>/i,以避免编写< code>a-zA-Z。

替代方案。你可以在这里阅读更多关于环顾四周的断言。但在这个阶段,这可能有点超出你的理解。这里有一个替代方案,你可能会发现根据你已经知道的更容易分解:

/^([a-z0-9]*[a-z]){3}[a-z0-9]*$/i
周宏胜
2023-03-14

表示“1次或多次出现”。

{3}的意思是“3 次出现”。

{3,}表示“出现3次或更多次”

也可以写为 {1,}

*也可以写成{0,}

 类似资料:
  • 我需要这样一种验证,即我的字符串必须至少包含一个Unicode字母。将评估角色的角色。isLetter()为true。 比如说我要 我知道我可以使用角色循环。isLetter(),但我只是不想这么做。 这和这个完全不同,因为它只检查英文字母,但在我的例子中是一个Unicode字母。这根本不一样。

  • 问题内容: 一位访问员最近问我这个问题:给定三个布尔变量a,b和c,如果三个变量中至少有两个是true,则返回true。 我的解决方案如下: 他说,这可以进一步改善,但是如何呢? 问题答案: 而不是写: 写: 至于表达式本身,是这样的: 或此(无论您觉得更容易掌握): 它测试和准确一次,最多一次。 参考文献 JLS 15.25条件运算符?:

  • 我的字符串可以包含任何其他字符,但如果它至少包含一个数字,我希望从数组中获取这些字符串的索引。

  • 问题内容: 我想要这样一个验证,即“我的字符串”必须至少包含一个字母。 我正在使用以下内容: 即使在我的字符串中,标志也会给我 问题答案: 您想要的正则表达式是,但是您需要使用方法。 此页面将让您根据输入测试正则表达式。 正则表达式测试页 这里有一个Java正则表达式教程。 Java正则表达式教程

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

  • 我需要这样的验证,我的字符串必须至少包含一个字母表。 我正在使用以下内容: 即使字符串中有a,flag也会给我提供false