首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将空格替换为-,但不是when --已经存在

将空格替换为-,但不是when --已经存在
EN

Stack Overflow用户
提问于 2015-02-17 21:22:46
回答 5查看 50关注 0票数 3

我正在尝试从我的数据库中获取产品名称并重写它们,名称看起来像这样:

代码语言:javascript
复制
Romper bedrukt met tekst - Lime maat 68

这是我的重写:

代码语言:javascript
复制
$string = preg_replace("/[^ \w]+/", "", $testlink['name']);
$string = str_replace(" ", "-", $string);

当名称为:

代码语言:javascript
复制
Romper bedrukt met tekst - Lime maat 68

它需要这样做:

代码语言:javascript
复制
Romper-bedrukt-met-tekst-Lime-maat-68

但它是这样做的:

代码语言:javascript
复制
Romper-bedrukt-met-tekst--Lime-maat-68

您可以看到double --,因为在第一个preg-replace中,我删除了除数字和字母之外的所有奇怪字符,但是当名称已经包含-时,将有2个空格。我的第二个替换用两个--。

我怎么才能让它工作呢?

EN

回答 5

Stack Overflow用户

发布于 2015-02-17 21:26:39

你也许可以做一些像这样简单的事情:

代码语言:javascript
复制
$string = 'Romper bedrukt met tekst - Lime maat 68';
$slug = preg_replace('/\W+/', '-', $string));
票数 2
EN

Stack Overflow用户

发布于 2015-02-17 21:26:15

在替换第一个替换之前,用空格替换" -“和它的任何迭代(例如”-“”-“和"-")。

票数 0
EN

Stack Overflow用户

发布于 2015-02-17 21:26:37

对于这些特定的情况:

代码语言:javascript
复制
$string = str_replace(array(' -','- ',' '), '-', $testlink['name']);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28562557

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档