一定要全用正则式?这样行不行?
function formatNumber(sStr){
  var cFirst=sStr.substr(0,1)
  var sNext=sStr.substr(1)
  return cFirst+sNext.replace(/-/g,"")
}

解决方案 »

  1.   

    try:
    <script>
    function convert(str)
    {
    var pattern1 = /^[^-]/gi
    if(pattern1.test(str))
    {
    alert(str.replace(/-/gi,""))
    }
    else
    {
    alert("-"+str.replace(/-/gi,""))
    }
    }
    convert("-100adfas--df129-")
    </script>
      

  2.   

    可能是想把-找出来然后kill掉他吧?
      

  3.   

    <script>
    s="---99----999--";
    alert(math(s));
    function math(str){
    return str.replace(/(-+)/g,"-").replace(/-$/g,"").replace(/(\d)(-)(\d)/g,"$1$3");
    }
    </script>
      

  4.   

    第二种,临时替换法
    <script>
    s="---12----345--";
    alert(math(s));
    function math(str){
    return str.replace(/(^\-+)/g,"+").replace(/-/g,"").replace(/^\+/g,"-");
    }
    </script>
    推荐第三种:
    <script>
    s="---12----345--";
    alert(math(s));
    function math(str){
    return str.match(/(^-|\d)/g).join("");
    }
    </script>