这是我尝试过的,但它没有删除撇号,有没有更好的方法呢?
$title = strtr($title, array('.' => '', ',' => '', '!' => '', '\'' => ''));
$title = preg_replace('/\s+/', '-', $title);
例如,我想转向:
示例:
Let's Start! => lets-start
但我正在努力寻找适用于所有情况的解决方案。
答案 0 :(得分:4)
你可以使用这个表达式:
strtolower(preg_replace("#\s+#u", "-", preg_replace("#[^\w\s]|_#u", "", $title)))
注意:如果您的原始字符串包含HTML编码,例如’
,那么您必须首先使用以下代码对其进行解码:
$title = html_entity_decode($title);
答案 1 :(得分:0)
const authenticate = (username, password) => {
return axios
.post('http://localhost:8000/api/auth/login/', {username, password})
.then((response) => {
console.log('RESPONSE: ', response.data);
return response.data;
})
.catch((error) => {
throw error;
});
};
这应该替换字符,然后将所有空格更改为破折号。
答案 2 :(得分:0)
如果没有 regx
,您可以获得相同的结果$title = "Let's Start!";
$title = strtr(strtolower($title), array('.' => '', ',' => '', '!' => '', '\'' => ''));
$title = str_replace(' ','-',trim($title));
echo $title; //Output: lets-start