【问题标题】:how to write a regular expression that ONLY accepts strings [duplicate]如何编写只接受字符串的正则表达式[重复]
【发布时间】:2015-10-24 08:48:26
【问题描述】:

我正在尝试理解正则表达式,我发现理解它真的很混乱。我需要知道如何编写一个只匹配字符串的正则表达式,没有数字,没有特殊字符,只是来自 A - Z 的字母。我不得不说我尝试使用\[a-z]\,但它没有按我想要的那样工作。这些是我想要的一些结果:

pe<.?ter -----> should return false
ale8 ---------> should return false
?ramon -------> should return false
tho<>?mass----> should return false

peter -----> should return true
alex ------> should return true
ramon -----> should return true
thomas ----> should return true

【问题讨论】:

  • ^[a-zA-Z]+$ 应该这样做吗?从开始到结束。必须至少是一个字母
  • @Matt——可能带有 i 标志。
  • 数字和特殊字符可以是字符串,即使字符串中没有字母。所以你要找的是一个只接受字母的正则表达式。
  • 正则表达式区分大小写,因此您需要使用i 标志:/^[a-z]+$/i。或者您可以像其他 Matt 所做的那样显式测试大写和小写。
  • 你在网上没有找到任何关于这样做的信息吗?像 developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/…perldoc.perl.org/perlrequick.html#Matching-repetitions 或像 regexpal.com 这样的交互式工具?已经这么近了,怎么没耐心了?

标签: javascript regex


【解决方案1】:

如果您的正则表达式在您的字符串中找到一个从 a 到 z 的字母(仅小写),则返回 true。

要制作您想要的,请使用/^[a-zA-Z]+$//^[a-z]+$/i

^ 使您的正则表达式从字符串的开头开始。

[a-zA-Z] 使正则表达式查找一个字母、小写或大写(请注意,您可以改用 i 修饰符,使搜索不区分大小写)。

+ 使正则表达式搜索前一个元素的一次或多次。

$ 确保您的正则表达式在字符串末尾结束。

【讨论】:

    【解决方案2】:

    这应该适合你:

     var re = /^[a-z]+$/i; 
    

    See here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-05-28
      • 2013-11-11
      • 2023-04-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多