【问题标题】:what is the differnce between (/^[a-zA-Z]+$/) and (/^[a-zA-Z]$/)? [closed](/^[a-zA-Z]+$/) 和 (/^[a-zA-Z]$/) 有什么区别? [关闭]
【发布时间】:2013-10-29 12:05:19
【问题描述】:

我是java脚本的新手,所以我对正则表达式有疑问。上面提到的正则表达式有什么区别,对最终输出有什么影响?

【问题讨论】:

  • 获取MDN Reg Exp等好的资源
  • 虽然使用正则表达式很好,但这与javascript无关。网上有很多资源可以解释规则(甚至维基百科页面也很擅长)除了文档之外,我发现rubular.com 非常方便检查您在真实示例中的发现(尤其是在开始使用捕获时>

标签: javascript regex


【解决方案1】:

+ 表示前面的项目必须出现一次或多次。因此,您的第二个正则表达式匹配一个长度为 1 的字符串,而您的第一个正则表达式匹配一个多字符字符串。

【讨论】:

    【解决方案2】:

    [a-zA-Z] 匹配单个字符,如果它在字符范围 a-zA-Z 中。 + 表示“一个或多个”,因此 [a-zA-Z]+ 匹配其中一个或多个字符。 * 表示 0 或更多。 ? 表示 0 或 1。{n} 匹配 n 次,{n,} n 或更多次,{n,m} 匹配 n 或 m 次(包括)之前的任何内容。

    【讨论】:

      【解决方案3】:

      这首先匹配任何仅由字母组成的字符串。

      /^[a-zA-Z]+$/.test("Hello"); // true
      /^[a-zA-Z]+$/.test("f");     // true
      /^[a-zA-Z]+$/.test("9");     // false
      

      后者匹配只有一个字符的字符串,即一个字母。

      /^[a-zA-Z]$/.test("Hello");  // false
      /^[a-zA-Z]$/.test("f");      // true
      /^[a-zA-Z]$/.test("9");      // false
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-06-22
        • 1970-01-01
        • 2010-12-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多