我正在编写一个javascript程序,我需要找到匹配字符串与正则表达式的开头的最佳方法。我的确切问题是以dd.mm.yyyy
格式验证日期的起始符号。例如,31.1
和31.12.201
有效,但31..
或31.122
则不会。
我不需要特别使用正则表达式 - 如果有更简单的方法在javascript中执行此操作,那很好。
EDIT。请注意,我正在寻找 uncomplete 日期的匹配,而不是here所提出的。
答案 0 :(得分:2)
你可以做这样的事情
function validate(ele) {
ele.style.color = /^(\d|\d{2}(\.\d?|(\.\d{2}(\.|\.\d{1,4})?)?))$$/.test(ele.value) ? 'green' : 'red';
}
<input type=text id=date oninput="validate(this)">
<强> Regex explanation 强>
答案 1 :(得分:0)
这样做你想要的:
mystring.match('^' + teststring) !== null
其中mystring
为31.12.201
而teststring
为31.1
答案 2 :(得分:0)
您也可以这样做以匹配字符串:
function validStr(str)
{
if(str.length > 10 ) //if length is more than valid char its invalid
return false;
var patt=/\d{2}\.\d{2}\.\d{3}/g; //use regex to match pattern like 31.12.201 digit twice.digit twice.and digit 3 or 4 times at last
return patt.test(str);
}
alert(validStr("31.12.201"));
答案 3 :(得分:0)
要使用dd.mm.yyyy
格式javascript
验证日期,您可以使用:
re = /(?:0[1-9]|[12][0-9]|3[01])\/(?:0[1-9]|1[0-2])\/(?:19|20\d{2})/;
有效 11/11/2015
无效 13/13/2015
您还可以使用Jquery
datePicker
并使用正则表达式进行验证,即:
$("#datepicker").datepicker(
{
onSelect: function()
{
//var dateObject = $(this).datepicker('getDate');
var date = $('#datepicker').datepicker({ dateFormat: 'dd-mm-yy' }).val();
console.log(date);
if (/(?:0[1-9]|[12][0-9]|3[01])\/(?:0[1-9]|1[0-2])\/(?:19|20\d{2})/.test(date)) {
alert(date+" VALID DATE !")
} else {
alert(date+" INVALID DATE !")
}
}
});
//if the user tries to edit the field manually we check for any changes
$( "#datepicker" ).change(function() {
var date = $('#datepicker').datepicker({ dateFormat: 'dd-mm-yy' }).val();
console.log(date);
if (/(?:0[1-9]|[12][0-9]|3[01])\/(?:0[1-9]|1[0-2])\/(?:19|20\d{2})/.test(date)) {
alert(date+" VALID DATE !")
} else {
alert(date+" INVALID DATE !")
}
});
&#13;
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery UI Datepicker - Default functionality</title>
<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
</head>
<body>
<p>Date: <input type="text" id="datepicker"></p>
</body>
</html>
&#13;