摘要:言归正传,之所以写继篇,其实是来检讨的,上一次发表了如何计算字符显示长度后,有网友几经测试后告知有问题。简言之单字节字符占,多字节字符占字节。
什么是ThinkSNS+
ThinkSNS(简称TS)始于2008年,一款全平台综合性社交系统,为国内外大中小企业和创业者提供社会化软件研发及技术解决方案,目前最新版本为ThinkSNS+。
后端框架使用laravel,每周和 laravel master 保持同步,而后台和 html 5 则采用 vue 开发。语言特性方面,采用 php 7 的严格模式。
言归正传,之所以写继篇,其实是来检讨的,上一次发表了《ThinkSNS+ 如何计算字符显示长度》后,有网友几经测试后告知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: https://github.com/zhiyicx/th...(点击star关注研发动态,感谢大家的支持)
ThinkSNS官网:http://thinksns.com/
内测申请方式
提供个人/企业联系方式及认证信息(实名ID/企业营业执照照片或扫描件)及申请说明,发送邮件至lihecong@zhishisoft.com即可获得内测资格,申请从速。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/23111.html
摘要:今天我们来聊一下可能很多人都会头疼的东西显示长度。需求是这样的,在字符的显示上,两个英文单词才占一个中文或者其他语言的显示长度。好在在无意间发现一个奇怪的东西这个函数计算非英文单词外是除了符号例如中文就是按照汉字个数算的,也是同理。 今天我们来聊一下可能很多人都会头疼的东西:显示长度。 需求是这样的,在字符的显示上,两个英文单词才占一个中文或者其他语言的显示长度。如下: showImg...
摘要:需求场景发送验证码或者消息通知,可发送到手机或邮箱中。完成首先,在中的规范就是使用的消息通知,这里基于场景为验证码。所以我们在验证码模型中添加是完全符合通知的正确使用的。 顺便发个小通知:7月15日ThinkSNS+开源版发布,同时非开源的APP也走出内测阶段,体验二维码也全面发布体验。 什么是ThinkSNS ? ThinkSNS(简称TS),一款全平台综合性社交系统,为国内外大中小...
摘要:本文分享下利用的达到网站后台设置配置。当加载配置执行完成后就会执行我注入的后置事件。官网内测申请方式提供个人企业联系方式及认证信息实名企业营业执照照片或扫描件及申请说明,发送邮件至将有机会获得首批内测资格,名额有限,申请从速。 本文分享下利用 Laravel 的 Bootstrapping 达到网站后台设置 laravel 配置。 需求场景 首先,ThinkSNS+ 作为一个用户可以使...
阅读 3066·2021-08-03 14:05
阅读 2108·2019-08-29 15:35
阅读 617·2019-08-29 13:30
阅读 3136·2019-08-29 13:20
阅读 2500·2019-08-23 18:15
阅读 1770·2019-08-23 14:57
阅读 2180·2019-08-23 13:57
阅读 1274·2019-08-23 12:10