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