如果没有RegexOptions.IgnoreCase,如何匹配整个单词而每个单词不区分大小写?

时间:2015-08-13 02:58:09

标签: javascript regex case-insensitive

我希望我的RegEx在服务器端和客户端都能正常工作(使用javascript) 我正在装饰我的ViewModel:

    [Display(Name = ConstantKeys.ValidationMessage_Gender_Name)]
    [Required(ErrorMessage = ConstantKeys.ValidationMessage_Gender_Required)]
    [RegularExpression(RegExKeys.Gender, ErrorMessage = ConstantKeys.ValidationMessage_Gender_RegEx)]

但我不知道是否可以将RegexOptions.IgnoreCase用于RegularExpression属性......

如何编写与这些匹配的正则表达式:

word1|wORD2|wOrD3 ...

(我希望正则表达式仍然是人类可读的) 提前谢谢。

澄清: 我想匹配任何单词(不仅仅是word1-3) 更好的例子:

Man1|woMAN2|MoNkEY3

2 个答案:

答案 0 :(得分:0)

([wW] [oO] [rR] [dD])|([aA] [nN] [dD])|([Ss] [oO])|([Oo] [Nn])| ([FF] [OO] [RR] [EE] + [VV] [EE] + [RR])

[]中的所有字符表示这些字符中的任何字符,因此您可以使用不同的

中字母的选择

()将替代词替换为togeter

|让我们选择任何()词

字等等永远都匹配表达式以及

永远的词和中间的任何东西。

答案 1 :(得分:0)

如果您正在寻找字符串中的第一个单词,那就这样:

'asdasd ujh32d %^#@ mAN1'.match(/[\w]+/)

-> ["asdasd"]

如果你想列出所有单词,那么:

'asdasd ujh32d %^#@ mAN1'.split(/[\W]+/)

-> ["asdasd", "ujh32d", "mAN1"]