首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

Js正则匹配标签内容,该怎么处理

2013-12-20 
Js正则匹配标签内容有好多个 span标签 如:span style 1/spanspan style12/span要求用正则

Js正则匹配标签内容
有好多个 span标签 如:
<span style=""> 1</span>
<span style="">   1  2</span>

要求用正则 把 每个 span标签里面的内容前面的 多个空格 替换掉 一个空格,如下,2前面的空格不变。
<span style="color: #0;"> 1</span>
<span style="color: #0;"> 1  2</span>
谢谢!
[解决办法]
s= s.replace(/^\s*/," ");

获取span的内容,执行上面的replace,再重新给span赋值?
[解决办法]

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进行处理,不过也是得要重新赋值的
[解决办法]
html.replace(/^[\s\uFEFF\xA0]+
[解决办法]
[\s\uFEFF\xA0]+$/g,"&nbsp;");
[解决办法]
你给一下你匹配不到的html的代码结构呗,我们也可以测试测试。

是不是你有的span标签还有子标签?
[解决办法]
如果是在浏览器上就不需要,整个网页用正则匹配。
浏览器都用缓存把每个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;

}

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

热点排行