正则表达式检查大写字母或小写字母,如果在开头使用@

时间:2017-06-01 22:35:26

标签: javascript regex parsing

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

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

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

如果可能的话,我想在正则表达式中放置一个条件,如果字符串是'McMAHON'或'McDONALD',它可以放在字符标记内,条件是它们在开头使用@符号。例如'@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

2 个答案:

答案 0 :(得分:1)

请务必在列表的开头或结尾列出您的角色类-,这样您就不会创建&#34;范围&#34;人物。

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

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

Pattern Demo

答案 1 :(得分:0)

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