国产欧美日韩第一页|日本一二三不卡视频|在线精品小视频,亚洲第一免费播放区,metcn人体亚洲一区,亚洲精品午夜视频

使用正則表達(dá)式屏蔽關(guān)鍵字的方法

2017-09-19 17:27:04 11956

【問(wèn)題】關(guān)鍵字屏蔽是社交類軟件必做的功能,當(dāng)然了,一般來(lái)講都是產(chǎn)品的中后期來(lái)做;不同產(chǎn)品規(guī)定不一樣,跟著產(chǎn)品運(yùn)營(yíng)走,可以的

【方法】我們從技術(shù)的角度來(lái)看到這個(gè)問(wèn)題,實(shí)現(xiàn)一個(gè)功能后者說(shuō)實(shí)現(xiàn)一個(gè)需求,其方法是多種多樣的,重點(diǎn)是找到適合我們當(dāng)下產(chǎn)品的;比如:我們可以在后端進(jìn)行數(shù)據(jù)處理之后,傳遞到前端;也可以在前端進(jìn)行數(shù)據(jù)處理;這里我們要說(shuō)的就是前端的JS處理方法,后端的php處理方法

【JS方法】

1
2
3
4
5
6
7
// 進(jìn)行屏蔽的文字
var str = '小麗、小明和小紅是校長(zhǎng)的學(xué)生;在這個(gè)小家庭里面,校長(zhǎng)就是我們的老師!';
// 關(guān)鍵字組,這個(gè)可以在前端進(jìn)行定義,也可以來(lái)自后臺(tái)
var arr = ['小麗','小明','小紅','家庭','校長(zhǎng)'];
var res = str.replace(new RegExp(arr.join('|'),'img'),'*');
console.log(res);
// *、*和*是*的學(xué)生;在這個(gè)小*里面,*就是我們的老師!

【PHP方法】

1
2
3
4
5
6
// 進(jìn)行屏蔽的文字
$str = '小麗、小明和小紅是校長(zhǎng)的學(xué)生;在這個(gè)小家庭里面,校長(zhǎng)就是我們的老師!';
// 關(guān)鍵字組
$arr = ['小麗','小明','小紅','家庭','校長(zhǎng)'];
echo preg_replace('/'.join($arr,'|').'/','*',$str);
// *、*和*是*的學(xué)生;在這個(gè)小*里面,*就是我們的老師!

【總結(jié)】不同的是方法,相同的是思路;

【擴(kuò)展】我們不僅僅用來(lái)過(guò)濾關(guān)鍵字,我們平時(shí)進(jìn)行數(shù)據(jù)提交的時(shí)候會(huì)用trim進(jìn)行過(guò)濾前后空格,其實(shí)當(dāng)我們熟悉正則的時(shí)候,我們完全用正則來(lái)過(guò)濾掉用戶輸入的空格,而且用這則可以過(guò)濾掉任意位置的空格;在擴(kuò)展一下可能這也是為什么名字里不能包含空格的原因了,當(dāng)然真正的原因是由于語(yǔ)言字符串命名的限制而并非空格被過(guò)濾掉,這里用到的思想是,跨領(lǐng)域記憶自己學(xué)習(xí)的知識(shí),有利于記憶和在學(xué)習(xí);這里僅表示個(gè)人此時(shí)此刻的見解


提交成功!非常感謝您的反饋,我們會(huì)繼續(xù)努力做到更好!

這條文檔是否有幫助解決問(wèn)題?

非常抱歉未能幫助到您。為了給您提供更好的服務(wù),我們很需要您進(jìn)一步的反饋信息:

在文檔使用中是否遇到以下問(wèn)題: