日期:2014-05-16  浏览次数:20403 次

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,除非你那些是纯字符串,否则在页面中去获取的时候,它们已经是没有换行,没有空格的了。你按以下测试一下就明白我的意思了。
HTML code
<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);
这样??
------解决方案--------------------
HTML code
<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="测试" />