s= s.replace(/^\s*/," ");获取span的内容,执行上面的replace,再重新给span赋值?

解决方案 »

  1.   

    要 先获取? 能用正则 搞定吗 ,因为 span标签很多的
      

  2.   

    var ele = document.getElementById("aa"),
        htm = ele.innerHTML;
    htm = htm.replace(/\<span\s?[^\>]*\>(?:(\s*)[^\s]+)\<\/span\>/g,function($1,$2){
    console.log($1);
    console.log($2)
    return $1.replace($2," ");
    });
    console.log(htm);
    ele.innerHTML = htm;试试,这样可以把id=aa下的所有子元素的span进行处理,不过也是得要重新赋值的
      

  3.   


    你这个 替换 好像是 span标签跟标签之间,不是它们之间,是 每个标签的内容里的空格 
      

  4.   

    html.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"&nbsp;");
      

  5.   

    有 的 span标签匹配不到 
      

  6.   

    你给一下你匹配不到的html的代码结构呗,我们也可以测试测试。是不是你有的span标签还有子标签?
      

  7.   

    如果是在浏览器上就不需要,整个网页用正则匹配。
    浏览器都用缓存把每个dom element都存起来的,何苦?
    var $l = document.getElementsByTagName('span');
    var i=0;
    for(;$l[i];i++){
    var $1 = $l[i].innerHTML;
    var $2 = $1.replace(/^\s(\s)+/,' ');
    $l[i].innerHTML = $2;

    }
      

  8.   

    html.replace(/(<span[^>]*>)[\s\uFEFF\xA0]+(.*)(\<\/span>)/g,"$1&nbsp;$2$3")