目的: 去掉非p标签,去掉空格换行
思路:使用mongodb的replace方法支持的正则匹配替换
注意:以 / 开头表示匹配的表达式是一个正则
替换前
<p>
联系地址:南宁市沙井大道56华南城2号广场5楼
<p>
八、查询网址
<p>
<spanstyle="display:none;">
替换后
<p>联系地址:南宁市沙井大道56华南城2号广场5楼<p>八、查询网址<p>
代码:
// 使用forEach遍历数据
db.collection_name.find().forEach(function(item) {
// 得到指定字段的值
var con = item.field_name_a;
// 使用正则匹配替换内容替换 /g 表示全局匹配,匹配到所有符合要求的 不会匹配到就终止
con = con.replace( /<p.*?>/g, '<p>'); // 使用? 非贪婪匹配 替换<p style=""> 为 <p>
con = con.replace( /<[^(p>)].*?>/g, ''); // 使用 非^ 替换掉所有的非<p>
con = con.replace( /\s/g, ''); // 使用小s 替换掉所有的空格和换行
con = con.replace( /(<p>)+/g, '<p>'); // 使用+ 替换连续多个的<p> 为单个<p>
// 打印结果
print(con);
print(item._id)
print("---------------")
print("---------------")
print("---------------")
print("---------------")
//
db.collection_name.update({"_id":item._id},{$set:{"field_name_a":con}},{multi:true})
})
mongodb 贪婪模式控制
代码:
var con = "<p style=\"dfgf\">sfdsfdasfadsfadsf<p style=\"dfgf\">";
con = con.replace(/<p.*?>/g, '<p>');
print(con);
var con2 = "<p style=\"dfgf\">sfdsfdasfadsfadsf<p style=\"dfgf\">";
con2 = con2.replace(/<p.*>/g, '<p>');
print(con2);