Home  >  Article  >  Backend Development  >  How to block keywords using regular expressions

How to block keywords using regular expressions

巴扎黑
巴扎黑Original
2017-09-21 11:50:061821browse

Keyword blocking is a must-have function for social software. When we are familiar with regular expressions, we completely use regular expressions to filter out spaces entered by users, and regular expressions can filter out spaces at any position. Specifically, regular expressions block keywords. You can refer to this article for the method

[Question]Keyword blocking is a must-have function for social software. Of course, it is generally done in the middle and later stages of the product; different Product regulations are different. You can follow product operations.

[Method] We look at this problem from a technical perspective. To achieve a function, the latter means to achieve a requirement. The method There are many kinds, and the key point is to find the one that suits our current products; for example: we can process the data on the back end and then pass it to the front end; we can also process the data on the front end; what we are going to talk about here is the front-end JS processing method , back-end php processing method

[JS method]


// 进行屏蔽的文字
var str = '小丽、小明和小红是校长的学生;在这个小家庭里面,校长就是我们的老师!';
// 关键字组,这个可以在前端进行定义,也可以来自后台
var arr = ['小丽','小明','小红','家庭','校长'];
var res = str.replace(new RegExp(arr.join('|'),'img'),'*');
console.log(res);
// *、*和*是*的学生;在这个小*里面,*就是我们的老师!

[PHP method]


// 进行屏蔽的文字
$str = '小丽、小明和小红是校长的学生;在这个小家庭里面,校长就是我们的老师!';
// 关键字组
$arr = ['小丽','小明','小红','家庭','校长'];
echo preg_replace('/'.join($arr,'|').'/','*',$str);
// *、*和*是*的学生;在这个小*里面,*就是我们的老师!

[Summary]The difference is the method, the same is the idea;

[Extension]We are not only It is only used to filter keywords. When we submit data, we usually use trim to filter the spaces before and after. In fact, when we are familiar with regular expressions, we completely use regular expressions to filter out the spaces entered by the user, and we can use this to filter out any The space in the position; to expand, this may be the reason why the name cannot contain spaces. Of course, the real reason is due to the limitation of language string naming and not that spaces are filtered out. The idea used here is to remember yourself across domains. The knowledge learned is conducive to memory and learning; here it only expresses personal opinions at this moment

The above is the detailed content of How to block keywords using regular expressions. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn