javascript removeClass подстановочный знак, менее конкретный шаблон - PullRequest
0 голосов
/ 06 февраля 2019

В элементе, который у меня есть:

<span class="fa fa-address-book fa-user fa-4x fa-5x fa-lg"></span>

Мне нужно удалить это (fa-address-book и fa-user [font-awesome icons-names]) и сохранить его таким образом:

Примечание: (fa-address-book и fa-user) динамический, может быть любым.

<span class="fa fa-4x fa-5x fa-lg"></span>

Мой jQuery:

$(".button").click(function(e) {

    var regexp_order = /(^|\s)fa-\S+|(?=fa-4x)|(?=fa-5x)|(?=fa-lg)|(?=fa)/;
    var regexp = new RegExp(regexp_order, "g");

    $("#demo").removeClass (function (index, className) {
        return (className.match (regexp) || []).join(' ');
    });

    var temporal = $("#demo").attr("class");
    $("#result").append(temporal);

});

У меня многопроблем.Что я делаю не так?

Мой jsFiddle:

https://jsfiddle.net/m79c1edr/15/

1 Ответ

0 голосов
/ 06 февраля 2019

Вы можете попробовать это регулярное выражение, которое удаляет все подстроки, которые имеют более 2 символов после fa- или fa-cc, в частности

fa(?:-(?:cc|\w{3,}))+ 

Объяснение:

  • fa - Находит fa буквально
  • (?:-\w{3,})+ - Находит -, за которым следуют три или более символа слова в группе без захвата целиком, один или несколько раз длячехол fa-address-book чехол тоже.

Regex101 Demo

Ваше обновленное JSFiddle Demo

Дайте мне знать, если это работает для вас.

...