博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
社交系统ThinkSNS+ 如何利用 Laravel 表单验证来验证用户名的(我朝独有需求,两个字母占一个汉字。。。) ...
阅读量:6905 次
发布时间:2019-06-27

本文共 910 字,大约阅读时间需要 3 分钟。

什么是ThinkSNS+

ThinkSNS(简称TS)始于2008年,一款全平台综合性社交系统,为国内外大中小企业和创业者提供社会化软件研发及技术解决方案,目前最新版本为ThinkSNS+。

后端框架使用laravel,每周和 laravel master 保持同步,而后台和 html 5 则采用 vue 开发。语言特性方面,采用 php 7 的严格模式。

言归正传,之所以写继篇,其实是来检讨的,上一次发表了后,有网友几经测试后告知str_word_count 有问题。

根据ThinkSNS+ 的进度安排,最近在研发支付功能,所以只能使用周末的时间做了一个兼容性更好的计算方法。

需求

重新说下需求:在我天朝 PM 经常会提一种要求,就是例如一个用户名最多输入12个汉字,但是英文可以输入24个,混排也要满足这个规则。

简言之:单字节字符占0.5,多字节字符占1字节。

解决

闲下来的时候看了上篇文章中的算法,其实是没什么问题的,只是兼容性不够好,而且写那个方法时想得过于复杂

也不知道当时脑袋里面都想啥了

我们看上一篇中计算多字节的方法:

图片描述

计算方法是剔除我们需求中允许的单字节,然后通过 str word count 来获取多字节的个数,其实这个函数是可以获取到的,但是部分系统下是不会成功的。还有一个函数就可以直接获取多字节的个数 mb strlen 修改后如下:

图片描述

然后我们就可以正确完成这个需求了,最终实现的 Laravel 验证规则如下:

图片描述

Laravel 通过上面的规则,可以在表单验证规则中直接验证,还支持传入最小值和最大值。

上面的代码都是来自于基于 Laravel 开发的开源程序 ThinkSNS+ 中,ThinkSNS+ 采用 apache-2.0 协议开源,我相信可以作为很多 Laravel 学习者的学习程序之一。

项目地址:GitHub: (点击star关注研发动态,感谢大家的支持)

ThinkSNS官网:

内测申请方式

提供个人/企业联系方式及认证信息(实名ID/企业营业执照照片或扫描件)及申请说明,发送邮件至lihecong@zhishisoft.com即可获得内测资格,申请从速。

转载地址:http://lymdl.baihongyu.com/

你可能感兴趣的文章
中国传感产业化四大方向
查看>>
四路机架产品选购指导 搭载V3降幅较大
查看>>
物联网写入十三五规划 行业应用需求骤增
查看>>
poj2481 树状数组
查看>>
Contrinex为高温应用推出新的RFID标签
查看>>
高盛加入区块链战局,目标是外汇交易
查看>>
《企业级ios应用开发实战》一1.1 什么是企业应用
查看>>
231家公司三季报净利增幅翻番 光伏等行业向好
查看>>
Q3中国光网络系统支出放缓
查看>>
MapXtreme 2005 学习心得 第八节Session问题澄清-两种配置方式致开发方式不同(九)...
查看>>
我国智慧城市建设的新趋势
查看>>
调查显示:2016年Win10将在企业市场爆发
查看>>
微软调整Office更新发布计划:非安全更新单独推送
查看>>
迈克菲实验室报告通过“追寻赎金的流向”评估隐藏在以医院为目标的勒索
查看>>
FAA发布航空产品RFID系统使用指南
查看>>
安企欲做车载 切入点在哪里?
查看>>
卡巴斯基控诉Win10 Defender,俄罗斯就反垄断开始调查微软
查看>>
多家银行推信用分发力差异化 大数据提供依据
查看>>
大数据时代 首席数据官如何实现数据革新?
查看>>
Strategy Analytics:网络安全威胁以及GDPR将提升IT移动性预算
查看>>