【问题标题】:Regex to check for Capital letters OR small letters if @ is used at the beginning如果在开头使用@,则正则表达式检查大写字母或小写字母
【发布时间】:2017-06-01 22:35:25
【问题描述】:

所以我有这个正则表达式来检查字符串,如果匹配,则将它们放在正确的 div 类中。我用于字符的正则表达式如下:

character: /^([A-Z*_]+[0-9A-Z# (,._\-')]*)/

它检查字符串是否全部大写,如果是,则将其放在<div class="character"></div>标签上。

如果可能的话,我想在正则表达式中放置一个条件,如果字符串是“McMAHON”或“McDONALD”,则可以将其放置在字符标签内,前提是它们在开头使用@ 符号。例如'@麦当劳'

现在,我所拥有的就是检查这个结构的这个。

character: /^([@A-Z*_]+[0-9A-Za-z# (,._\-')]*)/,

这违背了字符正则表达式匹配的目的,因为即使没有“@”,它们也可以输入“John”。

希望放置在此标签上的字符串示例如下:

    'JOHN'
    'EXTRA #1'
    'M.C. HAMMER'
    '@M.C. McDONALD' - I can remove the @ before pushing the string
    'ANDROID #D-C_1'
    '@McDONALD' - I can remove the @ before pushing the string

【问题讨论】:

  • 我用几个字符串样本更新了它
  • 是的,没错.. 所以我必须做 tokens.push({ type: 'character', text: match[1].replace(/\@/g, '').trim( ) });如果@在开头

标签: javascript regex parsing


【解决方案1】:

- 列在字符类的开头或结尾非常重要,这样您就不会创建字符“范围”。

如果您使用\w 来表示[A-Za-z0-9_],也可以使您的模式更简洁。

^(@+[\w# (,.\'-]*|[A-Z]+[0-9A-Z# (,._\'-]*)$

Pattern Demo

【讨论】:

    【解决方案2】:

    这看起来很棒。只需完成它,一切都很好..https://regex101.com/r/o0PW2M/2 ..非常感谢@Nosyara 的洞察力..你已经删除了你的答案..

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-05
      • 2011-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-04
      • 1970-01-01
      相关资源
      最近更新 更多