我有一个跨文化网站,允许用户以dd-MMM-yyyy格式输入值。我能够根据其在C#中的文化来确定不同的值(五月,英语=五月,德语=迈)
我遇到的问题是这几个月的javascript验证。我能够建立可接受值的列表:
英语:
^Jan$|^Feb$|^Mar$|^Apr$|^May$|^Jun$|^Jul$|^Aug$|^Sep$|^Oct$|^Nov$|^Dec$
德语:
^Jan$|^Feb$|^Mrz$|^Apr$|^Mai$|^Jun$|^Jul$|^Aug$|^Sep$|^Okt$|^Nov$|^Dez$
我只想使此正则表达式不区分大小写。但是我看到的所有引用都将我指向/ gi标志,但是我所有的示例都没有意义。我尝试了以下方法,但它不起作用:
var shouldMatch = "may";
var regexPattern = "^Jan$|^Feb$|^Mar$|^Apr$|^May$|^Jun$|^Jul$|^Aug$|^Sep$|^Oct$|^Nov$|^Dec$/gi"
if(shouldMatch.match(regexPattern) != null) {
//this should happen
}
我究竟做错了什么? javascript的正则表达式帮助杀死了我。
最佳答案
jsFiddle Demo
但是,如何匹配“ mAR”或“ MAr”等呢?这很快成为一个有趣的场景。我认为,实现此目的的一种简单方法是仅匹配大写字母
var shouldMatch = "May";
var regexPattern = "^JAN$|^FEB$|^MAR$|^APR$|^MAY$|^JUN$|^JUL$|^AUG$|^SEP$|^OCT$|^NOV$|^DEC$";
if(shouldMatch.toUpperCase().match(regexPattern) != null) {
alert("match");
}