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

如何在Laravel中删除以09开头的指定文本内容?

在Laravel中移除所有以۰۹开头的文本内容(如电话号码)

嘿,我来帮你搞定这个需求!要移除所有以۰۹(波斯数字的09)开头的内容,比如示例里的电话号码,我们可以结合PHP的正则表达式和Laravel的特性来实现,下面给你几种实用的方案:

方案一:利用模型修改器自动处理(推荐)

如果是要在保存模型数据时自动清理内容,你可以在对应的模型里定义修改器,这样每次赋值或保存时都会自动处理:

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Post extends Model
{
    public function setContentAttribute($value)
    {
        // 第一步:移除所有以۰۹开头的波斯数字序列
        $cleanedContent = preg_replace('/۰۹[۰-۹]+/u', '', $value);
        
        // 第二步:清理掉移除号码后可能留下的末尾空格(比如示例里冒号后的空格)
        $cleanedContent = preg_replace('/\s+$/', '', $cleanedContent);
        
        $this->attributes['content'] = $cleanedContent;
    }
}

代码说明:

  • preg_replace('/۰۹[۰-۹]+/u', '', $value):这里的正则匹配以۰۹开头、后面跟着任意多个波斯数字的字符串,u修饰符确保正确处理Unicode字符(波斯数字属于Unicode范畴),然后把匹配到的内容替换为空。
  • 第二个preg_replace是可选的,用来移除内容末尾的多余空格,让结果更整洁,正好符合你给出的示例效果。

方案二:在控制器中手动处理用户输入

如果是要在接收用户请求时直接处理内容,可以在控制器里做:

namespace App\Http\Controllers;

use App\Models\Post;
use Illuminate\Http\Request;

class PostController extends Controller
{
    public function store(Request $request)
    {
        // 清理输入的内容
        $content = preg_replace('/۰۹[۰-۹]+/u', '', $request->input('content'));
        $content = preg_replace('/\s+$/', '', $content);
        
        // 保存到数据库
        Post::create([
            'content' => $content,
            // 其他字段...
        ]);
        
        return redirect()->back()->with('success', '内容已成功保存并清理!');
    }
}

方案三:批量更新已存在的数据库数据

如果你需要清理数据库中已有的内容,可以用Laravel的DB门面结合数据库的正则替换功能(适用于MySQL 8.0+,且字符集为utf8mb4):

// 在Artisan命令或控制器中执行
use Illuminate\Support\Facades\DB;

DB::table('posts')->update([
    'content' => DB::raw("REGEXP_REPLACE(content, '۰۹[۰-۹]+', '', 'u')")
]);

扩展:同时支持阿拉伯数字09开头的内容

如果你的场景中还需要处理阿拉伯数字09开头的号码,可以把正则改成:

$cleanedContent = preg_replace('/(۰۹|09)[۰-۹0-9]+/u', '', $value);

这样就能同时匹配波斯数字۰۹和阿拉伯数字09开头的所有数字序列了。

内容的提问来源于stack exchange,提问作者Fairy Like

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 15:42:41