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="测试" />