js正则匹配换行问题
<div id="main">
<div id="left">
</div>
<div id="right">
php
</div>
</div>
如果DIV内没有内容则不换行
把上面的改为
<div id="main">
<div id="left"></div>
<div id="right">
php
</div>
</div>
用JS如果写呢
[解决办法]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script type="text/javascript">
var reg=/^\s+$/;
function init(){
var div=document.getElementById("main");
var divs=div.getElementsByTagName("div");
for(var i=0;i<divs.length;i++){
divs[i].innerHTML=divs[i].innerHTML.replace(reg,"");
}
alert(div.innerHTML);
}
window.onload=init;
</script>
</head>
<body>
<div id="main">
<div id="left">
</div>
<div id="right">
php
</div>
</div>
</body>
</html>
这样试试
[解决办法]
Lz,除非你那些是纯字符串,否则在页面中去获取的时候,它们已经是没有换行,没有空格的了。你按以下测试一下就明白我的意思了。
<div id="main"> <div id="left"> </div> <div id="right"> php </div></div><script>alert(document.getElementById("main").innerHTML)</script>
[解决办法]
var a="<div id=\"main\">\n<div id=\"left\">\n</div>\n<div id=\"right\">\nphp\n</div>\n</div>";
var reg=/(<div .*>)\s+(<\/div>)/g;
a=a.replace(reg,'$1$2');
alert(a);
这样??
[解决办法]
<script type="text/javascript">function getV(){ var str=document.getElementById("regtext").value; var re=/([\n\r])(\s)*(\<\/div\>?(\s)*\<div)+/g; str=str.replace(re,"$3"); alert(str);}</script><textarea id="regtext" cols="20" rows="20"><div id="main"> <div id="left"> </div> <div id="Div1"> </div> <div id="Div2"> </div> <div id="right"> php </div></div></textarea><input type="button" onclick="getV()" value="测试" />