【問題】關(guān)鍵字屏蔽是社交類軟件必做的功能,當(dāng)然了,一般來講都是產(chǎn)品的中后期來做;不同產(chǎn)品規(guī)定不一樣,跟著產(chǎn)品運營走,可以的
【方法】我們從技術(shù)的角度來看到這個問題,實現(xiàn)一個功能后者說實現(xiàn)一個需求,其方法是多種多樣的,重點是找到適合我們當(dāng)下產(chǎn)品的;比如:我們可以在后端進(jìn)行數(shù)據(jù)處理之后,傳遞到前端;也可以在前端進(jìn)行數(shù)據(jù)處理;這里我們要說的就是前端的JS處理方法,后端的php處理方法
【JS方法】
// 進(jìn)行屏蔽的文字
var str = '小麗、小明和小紅是校長的學(xué)生;在這個小家庭里面,校長就是我們的老師!';
// 關(guān)鍵字組,這個可以在前端進(jìn)行定義,也可以來自后臺
var arr = ['小麗','小明','小紅','家庭','校長'];
var res = str.replace(new RegExp(arr.join('|'),'img'),'*');
console.log(res);
// *、*和*是*的學(xué)生;在這個小*里面,*就是我們的老師!
【PHP方法】
// 進(jìn)行屏蔽的文字
$str = '小麗、小明和小紅是校長的學(xué)生;在這個小家庭里面,校長就是我們的老師!';
// 關(guān)鍵字組
$arr = ['小麗','小明','小紅','家庭','校長'];
echo preg_replace('/'.join($arr,'|').'/','*',$str);
// *、*和*是*的學(xué)生;在這個小*里面,*就是我們的老師!
【總結(jié)】不同的是方法,相同的是思路;
【擴(kuò)展】我們不僅僅用來過濾關(guān)鍵字,我們平時進(jìn)行數(shù)據(jù)提交的時候會用trim進(jìn)行過濾前后空格,其實當(dāng)我們熟悉正則的時候,我們完全用正則來過濾掉用戶輸入的空格,而且用這則可以過濾掉任意位置的空格;在擴(kuò)展一下可能這也是為什么名字里不能包含空格的原因了,當(dāng)然真正的原因是由于語言字符串命名的限制而并非空格被過濾掉,這里用到的思想是,跨領(lǐng)域記憶自己學(xué)習(xí)的知識,有利于記憶和在學(xué)習(xí);這里僅表示個人此時此刻的見解
總結(jié)
以上所述是小編給大家介紹的使用正則表達(dá)式屏蔽關(guān)鍵字的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
您可能感興趣的文章:- JS使用正則表達(dá)式實現(xiàn)關(guān)鍵字替換加粗功能示例
- PHP正則表達(dá)式替換站點關(guān)鍵字鏈接后空白的解決方法