preg-replace - 如何使用 preg_replace 删除空格 + hiphen + 空格以仅在 url slug 中使用 hiphen
问题描述
我正在使用这个功能。一切正常,但是当我输入项目标题时,例如:“示例 - 数字产品”,它会在 url slug 示例中显示我---a-digital-product..在单词示例之后有 3 个连续的 hihen。请帮忙解决。
public function item_slug($string){
$slug=preg_replace(array('/[^A-Za-z0-9 -]+/','/[ -]+/'), array('',''),$string);
return $slug;
}
解决方案
您可以在第二次替换中使用连字符来[ -]+
用单个连字符替换匹配的 1 次或多次出现的空格或连字符。
示例代码:
function item_slug($string){
return preg_replace(array('/[^A-Za-z0-9 -]+/','/[ -]+/'), array('','-'),$string);
}
$strings = [
"example---a-digital-product..",
"Example - A digital product"
];
foreach ($strings as $str) {
echo item_slug($str) . PHP_EOL;
}
输出
example-a-digital-product
Example-A-digital-product
推荐阅读
- asp.net-mvc - 中间件终止响应的正确方法
- mysql - 如何使用来自另一个表的信息更新 MySQL 表而不重复?
- azure - 如何使用自定义策略将 Octa SSO 作为 IDP 添加到 Azure AD B2C 租户 SSO?
- python - 如何计算文件中有多少单词没有出现?
- flutter - 共享偏好从地理定位器中保存位置地址
- c# - 如何使用 C# 在 SharePoint Online 中向多个用户发送电子邮件
- c++ - 如何使用 Google 测试框架在 C++ 中测试抽象类?
- window - 运行脚本时 Bash 无法识别 npm 和节点
- java - 如何使球图像从一名球员反弹到另一名球员?
- java - 发送 kafka 消息的更好方法:JsonNode 或 Map
?