2018合法的空白昵称_id空白代码生成器


面对项目中遇到的问题,我发现有部分微信用户的昵称字段为空。为此,上级交付任务给我,希望我能过滤掉这些空白昵称的用户,若昵称为空,则系统需自动生成一个默认的用户昵称。

经过一番深入研究,我尝试了多种方法来解决这个问题。我怀疑这可能是一个特殊的空白字符所致,于是决定使用json_encode来查看字符的编码情况。

在不断的尝试中,我运用了正则表达式进行匹配。我尝试了三种写法,并利用php的trim()函数,它能够默认移除字符串两侧的特定字符。我还尝试了使用preg_replace()函数,并特别关注了其中的\s正则替换。文档说明\s代表的是任意空白字符,但在实际测试中,我发现它并不能移除所有的空白字符,例如\u00a0就无法被移除。

为了更深入地理解这个问题,我查阅了php手册中关于字符类的描述。其中提到了空白字符包括HT(9)、LF(10)、VT(11)、FF(12)、CR(13)以及space(32)等。特别要注意的是,这个列表中包含了垂直制表符。这让我意识到,space与\s中的space并不完全相同,因为\s并不包含垂直制表符(这是为了与perl保持兼容)。

我也了解到了关于字节顺序标记(BOM)的相关知识。BOM即U+FEFF字符,最初用于标识字节流的字节序。但从Unicode 3.2开始,它的使用已受到限制,现在主要用来表示零宽度不中断空格等特殊用途。

那么,回到问题的解决上来。我最终决定采用一种综合的方法来处理这个问题。我将通过正则表达式来匹配并处理这些特殊的空白字符和BOM标记等,以确保能有效地过滤掉空昵称的用户。我也将利用php的相关函数来辅助完成这项工作。

下面是我针对这个问题所编写的完整代码: