Я использую этот RegEx ^(0[1-9]|1[0-2])/(19|2[0-1])\d{2}$
в .NET для проверки поля с месяцем и годом (12/2000
).Преобразование RegEx для использования с Javascript
Я меняю все свои проверки RegEx на JavaScript, и я столкнулся с проблемой с этим из-за /
в середине, с которым у меня возникают проблемы с экранированием.
Так на основе других ответов на SO я пробовал:
RegExp.quote = function (str) {
return (str + '').replace(/[.?*+^$[\]\\(){}|-]/g, "\\$&");
};
var reDOB = '^(0[1-9]|1[0-2])/(19|2[0-1])\d{2}$'
var re = new RegExp(RegExp.quote(reDOB));
if (!re.test(args.Value)) {
args.IsValid = false;
return;
}
Однако валидация не удается даже с действительными данными.
Как насчет простого 'вар п =/^ (0 [1-9] | 1 [0-2]) \/(19 | 2 [0-1]) \ d {2} $ /; 'который использует оператор regex' // '?? – sln
@sln Разве это не _regex literal_? – Kroltan
О, может быть. Разве он не компилирует 're' там как объект регулярного выражения? – sln