JS正则expression式:如何从“08/08/2017”中删除前2个零

我是新来的正则expression式,并一直在研究整夜如何从“08/08/2017”string中删除前2个零(不删除“2017”中的0)

我看过的5个以上的正则expression式教程似乎没有涵盖我在这里需要的东西。

date可以是系统返回的任何sysdate。 所以正则expression式也需要为“12/12/2017”

这是我所想到的最好的:

let sysdate = "08/08/2017" let todayminuszero = str.replace("0",""); let today = todayminus0.replace("0",""); 

它工作,但显然这是不专业的。

从教程中,我敢肯定,我可以做一些事情:str.replace(/ \ d {2} // g,“”),); 这种模式可以避免在str中获得第三个零。 replacestring将不得不表示8/8 /不知道如何写这个虽然。

对于date操作,我会使用其他function(最好的date相关),但是,这应该这样做,你说的情况。 如果你需要其他格式,我build议以不同的方式去除零,但这一切都取决于你的UseCase。

 let sysdate = "08/08/2017"; let todayminuszero = sysdate.replace(/0(?=\d\/)/gi,""); console.info(todayminuszero); 

你应该使用这个

 let sysdate = "08/08/2017" let todayminuszero = sysdate.replace(/(^|\/)0/g,"$1"); console.log(todayminuszero); 
 function stripLeadingZerosDate(dateStr){ return dateStr.split('/').reduce(function(date, datePart){ return date += parseInt(datePart) + '/' }, '').slice(0, -1); } console.log(stripLeadingZerosDate('01/02/2016')); console.log(stripLeadingZerosDate('2016/02/01')); 

通过前2个零 ,我明白你的意思是在8月之前和在date之前是零。

你可以尝试这样的事情:

理念

  • 创build一个正则expression式来捕获表示date,月份和年份的数字组。
  • 使用这个正则expression式来replace值。
  • 使用一个函数来返回处理的值。
 var sysdate = "08/08/2017" var numRegex = /(\d)+/g; var result = sysdate.replace(numRegex, function(match){ return parseInt(match) }); console.log(result)