我有一个如下所示的 HTML 字符串
var hoverData = "<table id='hvr-revision_history'><tr><td>{date_value}2013-07-29T11:52:38Z{date_value}</td><td>Error1</td></tr><tr><td>{date_value}2013-07-30T11:52:38Z{date_value}</td><td>Error2</td></tr><tr><td>{date_value}2013-07-31T11:52:38Z{date_value}</td><td>Error3</td></tr></table>";
需要的最终输出是
"<table id='hvr-revision_history'><tr><td>07/29/2013 11:52:38 AM</td><td>Error1</td></tr><tr><td>07/30/2013 11:52:38 AM</td><td>Error2</td></tr><tr><td>07/31/2013 11:52:38 AM</td><td>Error3</td></tr></table>"
我的方法是
var sindex = 0;
while(true){
var sindex = hoverData.indexOf("{date_value}"); //startindex
if(sindex <0)
break;
var eindex = hoverData.indexOf("{date_value}",sindex+1); //endindex
var date = hoverData.substring(sindex+12,eindex); //string between {date_value} tags, so 2013-07-29T11:52:38Z
//logic to parse the date
var hoverData = hoverData.replace(date,parsedDate);
}
var hoverData = hoverData.replace("{date_value}","");
有更好的方法吗?如果我有 2 个或更多日期完全相同,我的代码将失败。