2016-08-04 20 views
-2

日付の結果をフィルタリングしようとしていますが、正規表現が間違っている可能性があります。Javascript regexpの日付が正しく一致しません

if ((strSearchInx == 6) || (strSearchInx == 7)) { 
     var regDate = new RegExp("/^\d{1,2}\/\d{1,2}\/\d{4}$/"); 
     strSearchField = strSearchField.trim(); 
     //alert(strSearchField); 
     if (regDate.test(strSearchField) == false) { 
      alert("Date does not match mm/dd/yyyy format. Please re-enter"); 
      document.getElementById('searchfield').focus(); 
      return false; 
     } 

    } 

私は2016年8月3日に対してそれをテストしてみたし、それが通過どんな反応をさせていないようだ:/^\ dの{1,2}/\ dは{1,2}/\ですd {4} $ /正しい正規表現ですか?

ありがとうございました。

+0

はhttps://regex101.com/r/uN2sH3/1で動作するようです。入力が正しいと確信していますか? – Pabs123

+1

正規表現のリテラル構文を使用する '/^\ d {1,2} \/\ d {1,2} \/\ d {4} $ /' OR '新しい正規表現("^\\ d {1,2} \/\\ d {1,2} \/\\ d {4} $ ")' – Tushar

+0

この正規表現を正確な文字列 "8/3/2016"またはその日付を含む文字列にテストしていますか? –

答えて

1

Regexpオブジェクトを正しく使用していません。あなたはやるべき :

var regDate = new RegExp("^\\d{1,2}\/\\d{1,2}\/\\d{4}$"); 

がエスケープされ、そしてあなたが/とあなたの正規表現を開始し、終了してはいけません、正規表現オブジェクトに包まれていない、リテラル正規表現を開始し、終了するために使われている方法を\d参照してください。

+0

Worked!ありがとう。 –

+0

クール!どういたしまして。 –

関連する問題