我用getElementsByTagName获得所有select的值有下列几种形式:周一 6:00周日 12:00
周一 6:00周六 12:00周日 9:00 12:00
周一 6:00周四 12:00周五 9:00周六 12:00
周一 6:00周四 12:00周五 9:00周六 12:00周日 9:00 12:00
很明显,这样没有经过格式化,应格式化为如下:周一 6:00 - 周日 12:00
周一 6:00 - 周六 12:00; 周日 9:00 12:00
周一 6:00 - 周四 12:00; 周五 9:00 - 周六 12:00
周一 6:00 - 周四 12:00; 周五 9:00 - 周六 12:00; 周日 9:00 - 12:00function getWeek(divID){
var divX=$(divID);
var slt=divX.getElementsByTagName('select');
var k="";
if(slt){
   for(var i=0;i<slt.length;i++){k=k+slt[i].value;}
}
//k=k.replace(/(\d)周/g,"$1 - 周");
return k;
}很明显,我自己写的replace根本不行,求高手

解决方案 »

  1.   

    replace(/[^^](周)/g," - $1")
    这样行么
      

  2.   

    既然是select里获取的,那么数据在填充的时候是可控的,为什么不在那个时候格式化呢?
      

  3.   

    replace(/[-][ ](周)/g," - $1")
      

  4.   

    alert("周一 6:00周四 12:00周五 9:00周六 12:00周日 9:00 12:00".replace(/([\D\d]*?\:\d+)\s*([\D\d]*?\:\d+)/g, "$1 - $2; "))
      

  5.   

    replace(/([\D\d]+?\:\d+)\s*([\D\d]*?\:\d+)/g, "$1 - $2; "))
      

  6.   

    replace(/([\D\d]+?\:\d{2})\s*([\D\d]*?\:\d{2})/g, "$1 - $2; ")