javascript 正则表达式 替换 html 中的 p标签替换成BR标签
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript 正则表达式 替换 html 中的 p标签替换成BR标签相关的知识,希望对你有一定的参考价值。
例如
<div id="test">
<p>我是段落哦~!</p>
</div>
<h2 onclick="test()">点我把</h2>
function test()
//没引入JQ文件
var _one = $("#test").html();
_one = _one.replace("如何把p","替换成<br>")
$("#test").html(_one );
<br>是一个自闭合标签,所以要替换的时候,应该是在</p>的位置插入<br>,把<p>去掉就好了
可以这么写
_one = _one.replace("<p>","").replace("<\/p>",<br>")追问
不兼容IE6.。。。 令人抓狂。我在做一个DIV的编辑器,iE下回车是产生P标签,想换成BR而已,就卡这了。求赐教呀,谢谢
追答不兼容的表现是什么?
追问_one = _one.replace("","").replace("",") 这样替换之后在IE6下还是我是段落哦~!
谷歌和火狐都没问题 都是 我是段落哦~! 。
哦,那是因为IE的默认标签都是大写,改成正则就好了
_one = _one.replace(//i,"").replace(//i,")
这样会吧P里面的内容也替换掉呀。我要保留P里面的文字的。
追答保留P标签里的文字,那br加在哪里呢?br标签里面是没有内容的,你只要加在P标签内文字的前面还是后面呢?
追问
我是段落哦~!
我是段落哦~!
我是段落哦~!
替换后:
我是段落哦~!
我是段落哦~!
我是段落哦~!
_one = _one.replace(/([\s\S]*?)/ig, '$1');
追问$1代表什么呀。 写完整些啊,谢谢哈。
追答$1、$2、...、$99 与 regexp 中的第 1 到第 99 个子表达式相匹配的文本。详见参考资料。
你没有引入jquery,完整的代码是要什么样的呢?
我是段落哦~!
点我把
function test()
//没引入JQ文件
var _one = $("#test").html();
_one = _one.replace(/([\s\S]*?)/ig, '$1');
$("#test").html(_one );
参考资料:http://w3school.com.cn/js/jsref_replace.asp
用正则表达式替换 Javascript
【中文标题】用正则表达式替换 Javascript【英文标题】:Javascript Replace by Regex 【发布时间】:2014-01-26 05:36:21 【问题描述】:我正在使用 RegExp 来制作 slug。我是说替换所有字符与这样的模式不匹配:
str = str.replace(new RegExp('[^a-z0-9-]','g'), '');
它有效,但我需要询问它是否是正确的方式/语法/方法?
感谢任何提示。
【问题讨论】:
你可以这样做,或者str = str.replace(/[^a-z0-9-]/g), '');
最后一个连字符也错了——'*&%^$--kjhkhkjh'.replace(/[^a-z0-9]/g, '');
@epoch 最后一个连字符是错的?
连字符是字符类中的特殊字符,应该转义。
【参考方案1】:
1) 你可以写
new RegExp('[^a-z0-9-]','g')
作为
/[^a-z0-9-]/g
你写的正则表达式代表如下:
2) [] 中的任何内容都表示任何字符不是序列,但是当 [^] 开头出现抑扬符时表示 NOT在
3)a-z
代表从a到z的所有字符(小写字母)
4) 0-9
表示 0 到 9 以及末尾的连字符 (-)...以及连字符。
因此,您想保留哪些字符?如果您只想保留字母数字,请使用<b>/[^A-Za-z0-9]/g</b>
(这是区分大小写的版本)或<b>/[^a-z0-9]/gi</b>
不区分大小写
修饰符/标志:<b>g</b>
= 全局,<b>i</b>
= 不区分大小写
看的好地方:Mozilla MDN RegExp
【讨论】:
虽然这基本上是一个很好的答案,但您可能需要考虑更好的格式,例如使用更多的代码块(除其他外),以提高可读性,从而使其成为更好的答案。 :-) @BastiM 感谢您的建议。希望这种格式有帮助。老实说,我还没有探索过格式化选项,我不知道除了在新行上添加四个字符缩进的代码之外还能做什么。 现在看起来好多了 :) 随着时间的推移,你会探索所有这些格式化的东西,你会习惯它们。 @YahyaE 只需在第一个位置添加另一个 character class (您可能需要阅读 :) ),只允许字符。 @YahyaE 这应该可以解决问题:src = src.replace(new RegExp("[^a-z0-9-]*","gi"), "").replace(new RegExp("[^a-z]?([a-z0-9-])","i"),"$1");
以上是关于javascript 正则表达式 替换 html 中的 p标签替换成BR标签的主要内容,如果未能解决你的问题,请参考以下文章
Javascript 将正则表达式 \\n 替换为 \n,将 \\t 替换为 \t,将 \\r 替换为 \r 等等