字符串替换以替换空格并保持破折号
String replace to replace spaces and maintain dash
我正在尝试转换:
" Long Grain IRRI-6 White Rice "
至
" long_grain_irri_6_white_rice "
但它返回这个
" long_grain_irri-6_white_rice "
代码如下:
public function phpslug($string){
$slug = preg_replace('/[^a-z0-9-]+/', '_', strtolower($string));
return $slug;
}
我不仅要删除字母之间的space,我还需要删除“-”这个,所以它可以用“_”代替。
如何解决这个问题?
您可以从正则表达式模式中删除 -
:
function phpslug($string)
{
$slug = preg_replace('/[^a-z0-9]+/', '_', strtolower(trim($string)));
return $slug;
}
var_dump(phpslug(" Long Grain IRRI-6 White Rice "));
或者您可以简化您的 RegEx 模式:
function phpslug($string)
{
$slug = preg_replace('/[-\s]+/', '_', strtolower(trim($string)));
return $slug;
}
var_dump(phpslug(" Long Grain IRRI-6 White Rice "));
输出:
string(28) "long_grain_irri_6_white_rice"
我正在尝试转换:
" Long Grain IRRI-6 White Rice "
至
" long_grain_irri_6_white_rice "
但它返回这个
" long_grain_irri-6_white_rice "
代码如下:
public function phpslug($string){
$slug = preg_replace('/[^a-z0-9-]+/', '_', strtolower($string));
return $slug;
}
我不仅要删除字母之间的space,我还需要删除“-”这个,所以它可以用“_”代替。
如何解决这个问题?
您可以从正则表达式模式中删除 -
:
function phpslug($string)
{
$slug = preg_replace('/[^a-z0-9]+/', '_', strtolower(trim($string)));
return $slug;
}
var_dump(phpslug(" Long Grain IRRI-6 White Rice "));
或者您可以简化您的 RegEx 模式:
function phpslug($string)
{
$slug = preg_replace('/[-\s]+/', '_', strtolower(trim($string)));
return $slug;
}
var_dump(phpslug(" Long Grain IRRI-6 White Rice "));
输出:
string(28) "long_grain_irri_6_white_rice"