匹配正则表达式的开头

时间:2015-09-28 13:27:59

标签: javascript regex datetime

我正在编写一个javascript程序,我需要找到匹配字符串与正则表达式的开头的最佳方法。我的确切问题是以dd.mm.yyyy格式验证日期的起始符号。例如,31.131.12.201有效,但31..31.122则不会。

我不需要特别使用正则表达式 - 如果有更简单的方法在javascript中执行此操作,那很好。

EDIT。请注意,我正在寻找 uncomplete 日期的匹配,而不是here所提出的。

4 个答案:

答案 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

Regular expression visualization

答案 1 :(得分:0)

这样做你想要的:

mystring.match('^' + teststring) !== null

其中mystring31.12.201teststring31.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并使用正则表达式进行验证,即:

&#13;
&#13;
$("#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;
&#13;
&#13;