Санировать строку jquery? - PullRequest
0 голосов
/ 01 марта 2011

В моем случае я использую jQuery и PHP. Я могу добавить ширину данных jQuery и, когда я это сделаю, создаст новые теги div.

Проблема, с которой я столкнулся, заключается в том, что, если я добавлю «Мой тест по тесту» в класс div, например, он будет выглядеть так:

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

На самом деле это три класса. Мне нужно как-то продезинфицировать, как это делает Wordpress:

Обеззараживание заголовка

Мой результат должен быть:

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

Любые другие предложения о том, как лучше хранить данные, прикрепленные к элементам div или другим элементам, также приветствуются.

Ответы [ 2 ]

5 голосов
/ 01 марта 2011

Почему бы не использовать ту же функцию, которую использует 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;
}
0 голосов
/ 01 марта 2011

Прежде чем назначить класс для div, используйте .replace(), например:

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

...