<div><br>
<br>
</div>
<div><br>
</div>
<div><br>
</div>
<div></div>
<div>
</div>
上面要替换成6个<br>。
即<div><br>
<br>
</div>变成<br><br>
<div><br>
</div>
变成<br>
<div></div> 与
<div>
</div>都变成<br>
谢谢大家
解决方案 »
- blur中可以focus么
- |zyciis| 为什么 服务器端控件,引发onchange事件 要用obj.onchange.call(obj);
- IE6与IE7问题
- 在frame中,设置scrolling=no,如果里面图片大小超过了框架,若鼠标在frame里拖,如何设置图片不动?
- 在点击alert框上的确定按钮后,怎样才能不重新刷新页面
- 求助!怎么能用javascript,获取表单提交过来的值?
- javascript怎样读写xml
- 如果有能用IE来听的歌,是否一定能拷得下来,flash也一样吧!!
- 就是为了一个明白
- Spreadsheet的问题
- 调用window.print()出现undefined
- 急求:需要做一个日历管理,使用者可以用其管理自己的日常事务安排
</div>要变成任何字符<br>也就是说有<div></div> 就是一行了。里面有几个br就几个br
div里面有其它'字符串'就弄成 '字符串<br>'
var arg1=arguments[1];
if(/<br>\s*$/i.test(arg1)){
return arg1;
}
return arg1+'<br>';
});
var str = "<div><br><br></div><div><br></div><div><br></div><div></div><div></div>";
var result = "";
str.replace(regex,func)
function func(word)
{
var v = word.replace(/<\/?div>/gi,"").replace(/<br>/i,"")+"</br>"
result += v
}
<div><br>
<br>
</div>
按顶楼的说法是两个<br>,按1楼的说法应该是三个<br>
先明确需求,究竟什么规则
str=str.replace(/<div>((?:.|\s)*?)<\/div>/gi,function (){
//?:是非捕获标志 你可以这样理解 就是要正则跑的快一点 和外围的圆括号是一起出现的(?:)
//.|\s .表示任意字符 但不包括 \n换行符 \r回车符 |代表 或得意思 既然.不包括 \n\r
//加上\s 包括\n\r\t\f\x0B 就表示了所有字符 (?:.|\s)就表示 所有的字符不捕获这个分组
//经验提示 :|通常 所链接的 各组需要用()包起来 *表示 0-很多 *? 表示惰性匹配 加后面的</div>
//表示 只要遇到</div>就不匹配啦 不加?的后果是 一直匹配到最后一个</div>
//g表示 完成一次匹配 继续从最后一次匹配位置开始查找字符串 再匹配 直至字符串末尾
//i表示 忽略大小写 div Div DIV 都一样
var arg1=arguments[1];
//这里要说一次 replace(str,函数)
//函数的参数取决于你的正则的()数 但不包括非捕获组的括号哦 没有括号就1个参数 所匹配的字符都是
//第2个参数是第1个括号 第3个参数是第2个 ...
if(/<br>\s*$/i.test(arg1)){
//<br>\s*$ 我所表达的意思是 <br> 加空白 或者回车 多个都可以 但要紧挨着</div>
//如果有 就不再加<br/>啦
return arg1;
}
return arg1+'<br>';
});
if(/<br>\s*$/i.test(arg1)){