MongoDB删除替换空值换行,使用正则匹配需要替换的值

 

目的: 去掉非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);

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章