在将文字从word文件复制到文本编辑器时,我得到的是html代码,如
<p><br></p>
<p> <br></p>
<p> <br></p>
<p> <br></p>
我想用上面的空文本替换上面的代码,
var updated = copyieddata.replace('<p><br></p>', '');
updated = updated.replace('<p> <br></p>', '');
updated = updated.replace('<p> <br></p>', '');
updated = updated.replace('<p> <br></p>', '');
如何使用Regex实现上述功能以避免重复。
答案 0 :(得分:2)
pedram的回答可能是达到你想要的最简单方法。
但是,如果您只想删除<p> <br></p>
标记并保持所有其他标记完整,那么您需要一个正则表达式来获取字符串的所有部分:
<p>
开始,以</p>
<br>
或空白
您需要的正则表达式如下所示:/<p>(\s|<br>)*<\/p>/g
此表达式查找以<p>
开头,零或更多出现空格(\s
)或<br>
标记的子字符串,以及以</p>
结尾。
最后的/g
确保如果字符串中出现多次模式,则匹配每个模式。省略/g
只匹配字符串中第一个出现的模式。
所以,你的代码看起来像这样:
var pattern = /<p>(\s|<br>)*<\/p>/g;
var updated = copyieddata.replace(pattern, '');
答案 1 :(得分:1)
最简单的方法是将html
转换为text
(它会删除所有其他html
标记,并获得干净的文字)但您也可以使用此主题来了解格式{{1文本。
Jquery Remove MS word format from text area
Clean Microsoft Word Pasted Text using JavaScript
ms word
&#13;
var text = $('#stack');
text.html(text.text());
console.log(text.html());
&#13;
或者您使用此替换所有<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="stack">
some text
<p><br></p>
<p> <br></p>
<p> <br></p>
<p> <br></p>
some text
</div>
和<br>
代码。
<p>
&#13;
$("#stack").html(
$("#stack").html()
.replace(/\<br\>/g, "\n")
.replace(/\<br \/\>/g, "\n")
.replace(/\<p>/g, "\n")
.replace(/\<\/p>/g, "\n")
);
&#13;
而不是<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="stack">
some text
<p><br></p>
<p> <br></p>
<p> <br></p>
<p> <br></p>
some text
</div>
,您可以使用"\n"