Санировать строку jquery?
В моем случае я использую jQuery и PHP. Я могу добавить ширину данных JQuery и, когда я делаю это, создает новые теги Div.
У меня проблема в том, что если я добавлю "Мой тест" в класс div, например, это будет выглядеть так:
<div class="My åäö test">
На самом деле это три класса. Мне нужно как-то продезинфицировать, как это делает Wordpress:
Мой результат должен быть:
<div class="my-aao-test">
Любые другие предложения, как лучше хранить данные, прикрепленные к элементам div или другим элементам, также приветствуются.
2 ответа
Решение
Почему бы не использовать ту же функцию, которую использует 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;
}
Прежде чем назначить класс для использования div .replace()
например:
$('myclass').replace(' ', '-');