欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

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

更新时间: 2014-01-05 01:51:59 责任编辑: Author_N1

 

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")
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 01:51:59
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/2225/
本文WWW.DOC100.NET DOC100.NET版权所有。