0

フォーマットに一致するJavascriptで正規表現を作成しようとしていm/dd/yy-m/dd/yyます(したがって、のようになります4/11/12-5/12/13)。最初のセクションをテストしましたが、問題ないように見えますが、最初のセクションを通過できないようです。これが私が持っているものです(それは動作しますが4/11/12、動作しません-5/12/12

var myDateRE = /^((0?[13578]|10|12)(-|\/)(([1-9])|(0[1-9])|([12])([0-9]?)|(3[01]?))(-|\/)((19)([2-9])(\d{1})|(20)([01])(\d{1})|([8901])(\d{1}))|(0?[2469]|11)(-|\/)(([1-9])|(0[1-9])|([12])([0-9]?)|(3[0]?))(-|\/)((19)([2-9])(\d{1})|(20)([01])(\d{1})|([8901])(\d{1})))[-]$/ ;
4

2 に答える 2

0

これはあなたの部分文字列を見つけるために

1?\d\/[01]\d\/\d{2}-1?\d\/[01]\d\/\d{2}/

各値を決定するためにいくつかの括弧を追加できます

/(1?\d)\/([01]\d)\/(\d{2})-(1?\d)\/([01]\d)\/(\d{2})/.exec('4/11/12-5/12/13')

出力

["4/11/12-5/12/13", "4", "11", "12", "5", "12", "13"]
于 2013-03-09T21:36:38.110 に答える
0

私のおすすめ

デモ

var re = /^\d{1,2}\/\d{1,2}\/\d{1,2}-\d{1,2}\/\d{1,2}\/\d{1,2}$/
var str = "4/11/12-5/12/13"

function testDate(str) {
  var parts = str.split("/");
  var date = new Date(str);
  return parts[0] == date.getMonth()+1 && 
         parts[1] == date.getDate()    && 
         parts[2] == String(date.getFullYear()).substring(2);
}

if (str.match(re)) {
    alert(testDate(str.split("-")[0]));
    alert(testDate(str.split("-")[1]));
}
于 2013-03-09T21:49:30.270 に答える