ssitu / bernardo
格式化用户名、子域名并验证它们是否在黑名单上的忠实伴侣。
v0.1.0
2021-06-08 23:59 UTC
README
格式化用户名、子域名并验证它们是否在黑名单上的忠实伴侣。
包含
- 用于替换重音符号的映射;
- 包含多种语言的粗话和保留词的冗长列表;
- PHP实现。
可能还会有JS实现。
欢迎更多保留词的翻译。
如何使用
如果你愿意,只需使用 src/bernardo-diacritics.json
或 src/bernardo-dictionnary.json
!
关于PHP实现
$ composer require ssitu/bernardo
use SSITU\Bernardo; require_once 'path/to/autoload.php'; $Bernardo = new Bernardo(); # OR $adtDictionnary = ['qwibqwib','jeffkoons']; $Bernardo = new Bernardo($adtDictionnary); // will be added to the default one # All-in-one methods: $Bernardo->isValidSubDomain($entry, $returnSuggestion = false, $strict = true, $minLen = 4, $maxLen = 20); $Bernardo->isValidUsername($entry, $returnSuggestion = false, $strict = true, $minLen = 4, $maxLen = 20); # Cherry-pick methods: // These 4 methods will handle diacritics substitution: $Bernardo->formatSubdomain($entry, $minLen = 4, $maxLen = 20); $Bernardo->formatUsername($entry, $minLen = 4, $maxLen = 20); $Bernardo->format($entry, $pattern, $toLower = false, $minLen = 4, $maxLen = 20); $Bernardo->replaceDiacr($entry); // For these 3, diacritics MUST have been handled beforehand (or expect possibly wrong returns): $Bernardo->isValid($noDiacrEntry, $strict = true); $Bernardo->strictExtractForbidden($noDiacrEntry, $stopAtFirst = false); $Bernardo->extractForbidden($noDiacrEntry); // Adjustements: $Bernardo->cleanEntry($entry, $matches); $Bernardo->forceLength($entry, $minLen = 4, $maxLen = 20);
你还可以看看 src/php/Bernardo_test.php
。
太严格了吗?
我建议提供一个易于访问的小型专用联系表单,以防用户觉得过滤器太严格。
致谢
Rodrigo De Almeida Siqueira(前项目:postbit.com)
子域名黑名单
粗话
贡献
当然!🙌 你可以查看 CONTRIBUTING。
许可证
本项目采用MIT许可证;有关详细信息,请参阅LICENSE。