===================求正则表达式===============================

qwe065560 2011-09-27 07:49:34
把<p>111</p>标签换为111<br/>
把<div>111</div>标签换为111<br/>
如果<p>或者<div>中有css属性或者类似align="left"这样的html属性也全部替换了。。只要内容加上<br/>
此正则表达式应该怎么写
...全文
110 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
qwe065560 2011-09-28
  • 打赏
  • 举报
回复
明白。已经搞定。。。给分喽
Mr-Jee 2011-09-28
  • 打赏
  • 举报
回复
你的p和div里面都有其他的标签。这个已经相对复杂了 假设如果再有嵌套如<div><div><p></p></div></div>的话
那基本上javascript的正则无法实现你的需求了。因为实现太麻烦
qwe065560 2011-09-28
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 free_wind22 的回复:]

替换语句换一下
JScript code

var val = content.value.replace(/<(p|div)(?:\s+.*?)?>(.*?)<\/\1>/ig, "$2<br/>");
[/Quote]
还是有稍许不对。有几个P还是没被处理掉
现在的结果是
<p>  <b>管理部员工</b>个人工作总结</b><br />
<b> </b><br />
虽然进入公司才有2个多月,但我认真了解并学习了公司各项规章制度,并严格遵守。熟悉了公司的企业文化,并使自己更好的融入其中。入职以来在江峰主管的指导下我从mcu推广项目前台页面入手,并进入到现在信息共享系统后台页面的修改乃至编写,不仅使自己的技术水平有了显著提高,也使自己更适应安凯这个大家庭。现将过去这一年入职以来的工作情况总结如下:<br />
<b><span>1、<span>       </span></span></b><b>认真学习,提高了自己岗位的职业技术能力和职业素养。如设计模式的理解运用,对所写代码复用性,效率性的思考等。</b><br />
<b><span>2、<span>       </span></span></b><b>完成</b><b>mcu</b><b>推广项目部分前台页面的设计,修改。</b><br />
<b><span>3、<span>       </span></span></b><b>工作日志系统界面修改,以及加入</b><b>W3C</b><b>标准后,其中一些功能的修改。如:修改日志弹出框,下拉选择框等。</b><br />
<b><span>4、<span>       </span></span></b><b>对信息共享系统进行后台修,把用</b><b>servlet</b><b>实现改为用</b><b>struts</b><b>实现,数据库原本是</b><b>sqlserver</b><b>的改为</b><b>mysql</b><b>。如:芯片产品状态页面和芯片库存页面。</b><br />
<b><span>5、<span>       </span></span></b><b>添加新的信息共享系统功能,产品低良率的分析和跟踪。</b><br />
虽然在过去的时间里我取得了一些成绩,也学到了很多东西,但我自身也暴露出一些不足,例如:比较急于求成,对完成的系统检查测试不够仔细,还留存功能bug。在新的一年里,我会继续保存那些好的东西,但不会为那些成绩沾沾自喜,只是把这些成绩作为一个新的台阶,从这个台阶出发在新的一年日常的工作中把上一年发现的问题,不足予以改正,并且不停止对自己的职业技能学习和职业素养培养,争取取得更好的成绩。<br />
<span>                                                         </span>总结人:<br />
<span>                                                         2011-1-24</span><br />
<span>                                           </span><br />
 </p>
<p> </p>
2011-09-28
  • 打赏
  • 举报
回复
替换语句换一下

var val = content.value.replace(/<(p|div)(?:\s+.*?)?>(.*?)<\/\1>/ig, "$2<br/>");
qwe065560 2011-09-28
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 free_wind22 的回复:]

HTML code

<html><body>
<script type="text/javascript">
function re(){
var content = document.getElementById("content");
var val = content.value.replace(/<(p|div)(?:\s+.*?)?>([^<]+)<\/\1>/g,……
[/Quote]
用了2楼的以后
<p> </p>
<p align="center"><b>ERP</b><b>管理部员工杨怡骏</b><b>2010</b><b>年年度个人工作总结</b></p>
<p align="center"><b> </b></p>
<p>虽然进入公司才有2个多月,但我认真了解并学习了公司各项规章制度,并严格遵守。熟悉了公司的企业文化,并使自己更好的融入其中。入职以来在江峰主管的指导下我从mcu推广项目前台页面入手,并进入到现在信息共享系统后台页面的修改乃至编写,不仅使自己的技术水平有了显著提高,也使自己更适应安凯这个大家庭。现将过去这一年入职以来的工作情况总结如下:</p>
<p align="left"><b><span>1、<span>       </span></span></b><b>认真学习,提高了自己岗位的职业技术能力和职业素养。如设计模式的理解运用,对所写代码复用性,效率性的思考等。</b></p>
<p align="left"><b><span>2、<span>       </span></span></b><b>完成</b><b>mcu</b><b>推广项目部分前台页面的设计,修改。</b></p>
<p align="left"><b><span>3、<span>       </span></span></b><b>工作日志系统界面修改,以及加入</b><b>W3C</b><b>标准后,其中一些功能的修改。如:修改日志弹出框,下拉选择框等。</b></p>
<p align="left"><b><span>4、<span>       </span></span></b><b>对信息共享系统进行后台修,把用</b><b>servlet</b><b>实现改为用</b><b>struts</b><b>实现,数据库原本是</b><b>sqlserver</b><b>的改为</b><b>mysql</b><b>。如:芯片产品状态页面和芯片库存页面。</b></p>
<p align="left"><b><span>5、<span>       </span></span></b><b>添加新的信息共享系统功能,产品低良率的分析和跟踪。</b></p>
<p>虽然在过去的时间里我取得了一些成绩,也学到了很多东西,但我自身也暴露出一些不足,例如:比较急于求成,对完成的系统检查测试不够仔细,还留存功能bug。在新的一年里,我会继续保存那些好的东西,但不会为那些成绩沾沾自喜,只是把这些成绩作为一个新的台阶,从这个台阶出发在新的一年日常的工作中把上一年发现的问题,不足予以改正,并且不停止对自己的职业技能学习和职业素养培养,争取取得更好的成绩。</p>
<p align="right"><span>                                                         </span>总结人:杨怡骏</p>
<p align="right"><span>                                                         2011-1-24</span></p>
<p align="right"><span>                                           </span></p>

被替换成了
<p>  <br />
<br />
虽然进入公司才有2个多月,但我认真了解并学习了公司各项规章制度,并严格遵守。熟悉了公司的企业文化,并使自己更好的融入其中。入职以来在江峰主管的指导下我从mcu推广项目前台页面入手,并进入到现在信息共享系统后台页面的修改乃至编写,不仅使自己的技术水平有了显著提高,也使自己更适应安凯这个大家庭。现将过去这一年入职以来的工作情况总结如下: <br />
<br />
<br />
<br />
<br />
<br />
虽然在过去的时间里我取得了一些成绩,也学到了很多东西,但我自身也暴露出一些不足,例如:比较急于求成,对完成的系统检查测试不够仔细,还留存功能bug。在新的一年里,我会继续保存那些好的东西,但不会为那些成绩沾沾自喜,只是把这些成绩作为一个新的台阶,从这个台阶出发在新的一年日常的工作中把上一年发现的问题,不足予以改正,并且不停止对自己的职业技能学习和职业素养培养,争取取得更好的成绩。 <br />
总结人:杨怡骏 <br />
<br />
<br />
 </p>
<p> </p>

明显不正确求解
hch126163 2011-09-28
  • 打赏
  • 举报
回复

(?:\s+.*?): (?:) 表示非捕获组。 \s 匹配 空白符

$2 表示左边捕获的第2个组。即 ([^<]*)
javascript_2011 2011-09-28
  • 打赏
  • 举报
回复
var str1 = "<p id='1'>111</p>";
var str2 = "<div>111</div>";
var re = /<(?:p|div).*>(.*)<\/(?:p|div)>/gi;
alert(str1.replace(re,"$1"+"<br />"));
诺维斯基 2011-09-28
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 yeelone 的回复:]
初学JS,这个正则表达式有些地方看不懂,望指教:
(?:\s+.*?)? 是什么意思?没有看懂
<\/\1> \1 又是指什么呢?
$2<br/> $2是指内容?
[/Quote]
(?:\s+.*?)?意思是:匹配一个及以上空格及之后的第一个符合的所有字符(非贪婪),但是不进行分组,最后一个?表示这个匹配是可选的。
\1意思是:反向引用,引用的是第一个组。在这里就是(p|div)
$2意思是:$1,$2,$3和正则表达式无关,这个代码应该是放在服务器上运行的,相当于一个变量。执行完之后,$1,$2,$3就被赋予实际的值了。这里起个站位的作用。
yeelone 2011-09-28
  • 打赏
  • 举报
回复
初学JS,这个正则表达式有些地方看不懂,望指教:
(?:\s+.*?)? 是什么意思?没有看懂
<\/\1> \1 又是指什么呢?
$2<br/> $2是指内容?
豆虫 2011-09-27
  • 打赏
  • 举报
回复
恩 就用2楼得吧
BLUE_LG 2011-09-27
  • 打赏
  • 举报
回复
楼上给力!!
不过建议稍微改一下:
replace(/<(p|div)(?:\s+.*?)?>([^<]*)<\/\1>/g, "$2<br/>");
2011-09-27
  • 打赏
  • 举报
回复

<html><body>
<script type="text/javascript">
function re(){
var content = document.getElementById("content");
var val = content.value.replace(/<(p|div)(?:\s+.*?)?>([^<]+)<\/\1>/g, "$2<br/>");
alert(val);
}
</script>
<textarea id="content" rows="10" cols="70">
<p>11s.ss1</p> <p style='font-size:14px;'>lsk</p>
<div>111</div><div style="color:#fff">abc</div>
</textarea>
<input type="button" value="替换" onclick="re()">
</body></html>

87,910

社区成员

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

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