清理jquery字符串?

时间:2011-03-01 10:07:56

标签: javascript jquery sanitization

在我的情况下,我使用jQuery和PHP。我可以添加数据宽度jQuery,当我这样做时会创建新的div标签。

我遇到的问题是,如果我将“我的åäötest”添加到div类中,例如它看起来像这样:

<div class="My åäö test">

实际上,这是三个班级。我不知何故需要像Wordpress那样对其进行消毒:

Sanitize Title

我的结果应该是:

<div class="my-aao-test">

还欢迎任何其他建议如何更好地存储附加到div或其他元素的数据。

2 个答案:

答案 0 :(得分:5)

为什么不使用Wordpress使用的相同功能? 您可以通过ajax传递它进行消毒然后返回。 取自来源:

function sanitize_title_with_dashes($title) {
    $title = strip_tags($title);
    // Preserve escaped octets.
    $title = preg_replace('|%([a-fA-F0-9][a-fA-F0-9])|', '---$1---', $title);
    // Remove percent signs that are not part of an octet.
    $title = str_replace('%', '', $title);
    // Restore octets.
    $title = preg_replace('|---([a-fA-F0-9][a-fA-F0-9])---|', '%$1', $title);

    if (seems_utf8($title)) {
        if (function_exists('mb_strtolower')) {
            $title = mb_strtolower($title, 'UTF-8');
        }
        $title = utf8_uri_encode($title, 200);
    }

    $title = strtolower($title);
    $title = preg_replace('/&.+?;/', '', $title); // kill entities
    $title = str_replace('.', '-', $title);
    $title = preg_replace('/[^%a-z0-9 _-]/', '', $title);
    $title = preg_replace('/\s+/', '-', $title);
    $title = preg_replace('|-+|', '-', $title);
    $title = trim($title, '-');

    return $title;
}

答案 1 :(得分:0)

在将类分配给div之前,请使用.replace(),例如:

$('myclass').replace(' ', '-');