正则表达式强制执行字母数字,但允许使用撇号和连字符?

Sco*_*t B 6 php regex

我如何改变这个函数,以便它允许单撇号和连字符:

function sanitize_string($s) {
    $result = preg_replace("/[^a-zA-Z0-9]+/", " ", html_entity_decode($s, ENT_QUOTES));
    return $result;
}
Run Code Online (Sandbox Code Playgroud)

hal*_*dan 11

只需在范围的末尾包含单个撇号和连字符:

function sanitize_string($s) {
    $result = preg_replace("/[^a-zA-Z0-9'-]+/", " ", html_entity_decode($s, ENT_QUOTES));
    return $result;
}
Run Code Online (Sandbox Code Playgroud)