js正则匹配换行问题

szandyyu 2012-09-09 11:25:17
<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如果写呢

...全文
445 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
泡泡鱼_ 2012-09-09
  • 打赏
  • 举报
回复
咦,已经有人回了呀
泡泡鱼_ 2012-09-09
  • 打赏
  • 举报
回复
<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="测试" />
szandyyu 2012-09-09
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]
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);
这样??
[/Quote]

是的这样就是我想要的
另外我再问下
1.
<div id=about_727 class=about>
 
</div>
请问怎么把 也匹配掉呢
2. $1$2'
请问这个字符是啥意思呢
谢谢
szandyyu 2012-09-09
  • 打赏
  • 举报
回复
<textarea name="" cols="40" rows="5" id="qq">
<div id="main">
<div id="left">
</div>
</div>
</textarea>

var str=$("#qq").val();
似梦飞花 2012-09-09
  • 打赏
  • 举报
回复
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);
这样??
泡泡鱼_ 2012-09-09
  • 打赏
  • 举报
回复
或者,是修改在线文本编辑器内的内容???
泡泡鱼_ 2012-09-09
  • 打赏
  • 举报
回复
你这东东估计还不是你自定义的字符串,估计是抓取别人页面的内容???
szandyyu 2012-09-09
  • 打赏
  • 举报
回复
补充
<div id="main">
<div id="left">
</div>
<div id="right">
php
</div>
</div>


是一个字符串
不涉及到网页
szandyyu 2012-09-09
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
Lz,除非你那些是纯字符串,否则在页面中去获取的时候,它们已经是没有换行,没有空格的了。你按以下测试一下就明白我的意思了。

HTML code

<div id="main">
<div id="left">



</div>
<div id="right">
php
</div>
</div>
<script>
alert(doc……
[/Quote]


<div id="main">
<div id="left">
</div>
<div id="right">
php
</div>
</div>

你好,我这是一个字符串的,我忘记说了。

其实就是一个JS格式化HTML问题,网上有格式这样的函数,但是格式化后 有的div内没有问题
也换行了,我就是想加工一下。
泡泡鱼_ 2012-09-09
  • 打赏
  • 举报
回复
Lz,除非你那些是纯字符串,否则在页面中去获取的时候,它们已经是没有换行,没有空格的了。你按以下测试一下就明白我的意思了。
<div id="main">
<div id="left">



</div>
<div id="right">
php
</div>
</div>
<script>
alert(document.getElementById("main").innerHTML)
</script>
szandyyu 2012-09-09
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
<!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="Conten……
[/Quote]

您好,我其实就是想写一个这样的正则

var parter=/^<div.*>(\r*\n*)<\/div>$/gi;
str=str.replace(parter,"");

首先是 <div 开头 然后可能是任意字符 然后 是 > 然后是 空格 换行 再然后是 </div>
似梦飞花 2012-09-09
  • 打赏
  • 举报
回复
<!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>
这样试试
泡泡鱼_ 2012-09-09
  • 打赏
  • 举报
回复
晕死,你自己动态输出的时候别换行不就是了。空的不就是空的

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧