You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何避免用英文句号拆分文本生成有序列表时出现空li项

问题解决方案

问题根源是字符串末尾的英文句号在替换后会生成多余的空<li>标签,你可以选以下任意一种方案调整:

方案1:快速适配原有写法,仅清理末尾多余句号

先使用rtrim()函数删除字符串末尾的所有英文句号,再执行替换操作,修改后的代码如下:

<ol><li> {!! str_replace(".","</li><li>", rtrim($sscat->inclusion, '.')) !!} </li></ol>

该方案改动最小,rtrim()只会清除字符串末尾连续的英文句号,不会影响文本中间的正常内容。

方案2:更高兼容性,适配连续句号等异常场景

如果文本可能存在连续多个英文句号的情况(如aaa..bbb.ccc.),可以先拆分字符串过滤空值后再拼接,避免所有空列表项:

  1. 先在逻辑层处理文本内容:
// 按英文句号拆分字符串,过滤空元素后再拼接为li结构
$parts = array_filter(explode('.', $sscat->inclusion));
$listContent = implode('</li><li>', $parts);
  1. 前端视图输出:
<ol><li>{!! $listContent !!}</li></ol>

array_filter()会自动移除所有空字符串元素,不管是末尾句号还是中间连续句号产生的空内容都会被清理,稳定性更高。

注意:直接使用{!! !!}输出未转义的内容存在XSS安全风险,如果存储的文本来自用户提交,建议提前做HTML特殊字符转义处理。

内容的提问来源于stack exchange,提问作者Wakil Ahmed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 21:06:01