php - 正则表达式:Laravel 中的模式验证
问题描述
我尝试在 Laravel 中验证 facebook.com 网址。这是我的正则表达式:
'facebook' => 'url|regex:((?:(?:http|https):\/\/)?(?:www.)?facebook.com\/(?:(?:\w)*#!\/)?(?:pages\/)?(?:[?\w\-]*\/)?(?:profile.php\?id=(?=\d.*))?([\w\-]*))|nullable',
它适用于在线正则表达式测试网站 ( https://regex101.com/ ),但在Laravel
. 我有错误
“preg_match():没有找到结束匹配分隔符')'”。
问题是什么?
解决方案
请参阅官方文档中的此注释:
使用 regex / not_regex 模式时,可能需要在数组中指定规则而不是使用管道分隔符,尤其是当正则表达式包含管道字符时。
所以,这应该工作:
'facebook' => ['url', 'regex:/(?:(?:http|https):\/\/)?(?:www.)?facebook.com\/(?(?:\w)*#!\/)?(?:pages\/)?(?:[?\w\-]*\/)?(?:profile.php\?id=(?=\d.*))?([\w\-]*))/', 'nullable']
推荐阅读
- ios - Swift 中 10 位数字的当前日期到毫秒
- javascript - 警告:失败的道具类型:道具“孩子”在“查询”中被标记为必需,但其值为“未定义”
- html - 如何将数据从 arduino 串行监视器输入到 html 文件?
- facebook - 抓取 facebook 页面数据
- excel - 如何绘制从 csv 导入的数据?
- python - 在数据框中找到最长的父子链
- css - 如何让具有自动调整功能的 CSS Grid 的最后一列缩小到 minmax 的最小值以下?
- reactjs - 如何在创建反应应用程序中构建 bundle-stats.json?
- android - 是否必须上传 aab(Android App Bundle) 而不是 APK 文件
- google-apps-script - G Suite:删除 Chromebook 中的本地用户个人资料