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

时间:2011-04-15 12:12:57

标签: php regex

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

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

2 个答案:

答案 0 :(得分:11)

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

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

答案 1 :(得分:1)

尽可能快地找到答案。

我认为你可以将它们添加到角色类中;可能你需要逃避它们。

注意:要使用-,请务必将其放在最后,否则将被视为元字符。