我试过这个正则表达式:
(0[1-9]|[12][0-9]|3[01])\.(0[1-9]|1[012])\.(19|20)\d\d
在文本类型的输入中,它可以正常工作:
<input type="Text" pattern="(0[1-9]|[12][0-9]|3[01])\.(0[1-9]|1[012])\.(19|20)\d\d" title="Must be DD.MM.YYYY (ex: 29.11.2012)" class="std_input_long" id="toDate">
但是,当我尝试使用正则表达式对象在 JavaScript 中执行此操作时,它不起作用,任何人都可以解决这个问题。
JavaScript:
var regex = new RegExp('(0[1-9]|[12][0-9]|3[01])\.(0[1-9]|1[012])\.(19|20)\d\d');
var startDate = "23.11.2012";
var endDate = "11.12.2012";
var bStartDate = regex.test(startDate);
alert(bStartDate);
if (bStartDate) {
var bendDate = regex.test(endDate);
alert(bendDate);
if (bendDate) {
alert('both correct')
} else {
alert('End date incorrect must be DD.MM.YYYY \n\n\
Example: 29.11.2012');
}
} else {
alert('Start date incorrect must be DD.MM.YYYY \n\n\
Example: 29.11.2012');
}
这是一个JSfiddle进行试验。