2017-02-01 11 views
1

動作しない私のコードです:正規表現は、ここで

$('#test').on('click',function(){ 
 
var regdate = new RegExp('^(([0-2]\d|[3][0-1])\/([0]\d|[1][0-2])\/[2][0]\d{2})$|^(([0-2]\d|[3][0-1])\/([0]\d|[1][0-2])\/[2][0]\d{2}\s([0-1]\d|[2][0-3])\:[0-5]\d\:[0-5]\d)$'); 
 

 
if (regdate.test($('#datepicker').val())) 
 
{ 
 
    $('#response').text("Okay"); 
 
} 
 
else 
 
{ 
 
    $('#response').text("Nooo"); 
 
} 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="text" class="form-control noColorFocus" name="dateMinChargement" id="datepicker" /> 
 
<button id="test">Valider</button> 
 
<div id="response"></div>

我々はregdate.test()しようとすると、17/01/2017のような日が...任意のアイデアをtrueを返す必要がありますか?

+0

私はあなたの正規表現が少し冗長かもしれないと思います。ここにいくつかの簡単な解決策があります: http://stackoverflow.com/questions/12472976/regex-validate-european-date-format-with-multiple-separators 分離文字をいくつかのものに置き換える必要があるかもしれませんエスケープされたスラッシュ。 – rob

+0

バックスラッシュを意味しますか? – Kuartz

+0

いいえ、エスケープされたスラッシュを意味するので、バリデータは1-2-2013または1.2.2013の代わりに1/2/2013をキャッチします。すなわち\/ – rob

答えて

2

あなたは正規表現を宣言するときは、2つのオプションがあります。

  1. 文字列:バックスラッシュは
  2. ダイレクトをエスケープする必要がありnew RegExp('...')
:バックスラッシュはもう問題ではありません /MyPattern/

$('#test').on('click',function(){ 
 
var regdate = /^(([0-2]\d|[3][0-1])\/([0]\d|[1][0-2])\/[2][0]\d{2})$|^(([0-2]\d|[3][0-1])\/([0]\d|[1][0-2])\/[2][0]\d{2}\s([0-1]\d|[2][0-3])\:[0-5]\d\:[0-5]\d)$/; 
 

 
if (regdate.test($('#datepicker').val())) 
 
    $('#response').text("Okay"); 
 
else 
 
    $('#response').text("Nooo"); 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="text" class="form-control noColorFocus" name="dateMinChargement" id="datepicker" /> 
 
<button id="test">Valider</button> 
 
<div id="response"></div>

+0

OK ....あなたはちょうど私の人生を変えました:)ありがとう! – Kuartz

+0

@Kuartzはそれについてうれしい! * Bonneチャンス* –

関連する問題