我已經使用正則運算式進行了很多“過濾”以從字串中洗掉不需要的字符,這就是我正在使用的:
var regexpHashtag = new RegExp(/(?:^|\s)(?:#)([a-zA-Z\d] )/g)
var regexpUrl = new RegExp(/(?:https?|ftp):\/\/[\n\S] /g)
var regexpEmoji = new RegExp(/([\u2700-\u27BF]|[\uE000-\uF8FF]|\uD83C[\uDC00-\uDFFF]|\uD83D[\uDC00-\uDFFF]|[\u2011-\u26FF]|\uD83E[\uDD10-\uDDFF])/g)
var regexpQuotes = new RegExp(/['"] /g)
tweetText = tweetText.replace(regexpHashtag, '')
tweetText = tweetText.replace(regexpUrl, '')
tweetText = tweetText.replace(regexpEmoji, '')
tweetText = tweetText.replace(regexpQuotes, '')
但仍然存在標簽持續存在的情況,例如在過濾之前:
Pogledajte prizore koje je na? fotograf danas zabilje?io na Ilid?i (FOTO) ????????#Setnja #Ilidza #Malaaleja
后:
Pogledajte prizore koje je na? fotograf danas zabilje?io na Ilid?i (FOTO) ???#Setnja
“#Setnja”這個詞是造成我問題的原因,是因為在一個詞之前有表情符號,因為這些標簽“#Ilidza #Malaaleja”被洗掉了。我怎樣才能改進我的正則運算式來洗掉這個詞?謝謝。
uj5u.com熱心網友回復:
您的邏輯承認主題標簽前面可能有某個字符,因此請洗掉 LHS 上的空白邊界檢查:
var regexpHashtag = new RegExp(/#[a-zA-Z\d] /g)
var regexpUrl = new RegExp(/(?:https?|ftp):\/\/[\n\S] /g)
var regexpEmoji = new RegExp(/([\u2700-\u27BF]|[\uE000-\uF8FF]|\uD83C[\uDC00-\uDFFF]|\uD83D[\uDC00-\uDFFF]|[\u2011-\u26FF]|\uD83E[\uDD10-\uDDFF])/g)
var regexpQuotes = new RegExp(/['"] /g)
tweetText = "Pogledajte prizore koje je na? fotograf danas zabilje?io na Ilid?i (FOTO) ????????#Setnja #Ilidza #Malaaleja";
tweetText = tweetText.replace(regexpHashtag, '')
tweetText = tweetText.replace(regexpUrl, '')
tweetText = tweetText.replace(regexpEmoji, '')
tweetText = tweetText.replace(regexpQuotes, '')
console.log(tweetText);
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/473054.html
標籤:javascript 节点.js 正则表达式 Vue.js
上一篇:為什么在store的nuxtServerInit中無法獲取作業?
下一篇:Vuejs以多種輸入形式獲取索引
