jquery contains без учета регистра

Как сделать jQuery Содержит регистр без учета регистра, в том числе jQuery 1.8+?

Я пытаюсь использовать регистр «содержит» без учета регистра. Я попытался использовать решение по следующему вопросу stackoverflow, но это не сработало:

Для удобства решение здесь скопировано:

Здесь, где я его использую:

Мое использование исходного «чувствительного» к регистру «содержит» в том же сценарии работает без ошибок. У кого-нибудь есть идеи? Я был бы признателен.

ОТВЕТЫ

Ответ 1

Это то, что я использую в текущем проекте, не было никаких проблем. Посмотрите, есть ли у вас больше удачи в этом формате:

В jQuery 1.8 API для этого изменился, версия jQuery 1.8+ будет следующей:

Здесь вы можете проверить это. Для более подробной информации о пользовательских селекторах 1.8+ просмотрите вики Sizzle здесь.

Ответ 2

Это может быть разрешено путем дублирования расширения для псевдонима:

Потратил меня на то, чтобы понять, почему это не работает для меня.

Ответ 3

Я бы сделал что-то вроде этого

И Оставьте :contains Один.

Итак, почему jQuery не поддерживает его в этой библиотеке?! если это так просто.

Ответ 4

Может быть поздно. но,

Я бы предпочел пойти этим путем.

Таким образом, вы НЕ НАЙДИТЕ с помощью jQuery NATIVE ‘.contains’. Возможно, вам понадобится по умолчанию позже. если вы подделаете его, вы можете вернуться к StackOverflow.

Ответ 5

Я позволю себе добавить своих друзей:

Ответ 6

Я просто смог полностью игнорировать чувствительность к регистру jQuery, чтобы добиться того, что я хочу использовать под кодом:

Источник

Есть ли нечувствительный к регистру jQuery: содержит селектор?

11 ответов:

то, что я в конечном итоге сделал для jQuery 1.2:

это расширит jquery, чтобы иметь селектор :Contains, который не учитывает регистр, селектор :contains остается неизменным.

Edit: для jQuery 1.3 (спасибо @user95227) и позже вам нужно

изменить: По-видимому, доступ к DOM напрямую с помощью

в предыдущем выражении значительно ускоряет его, поэтому попробуйте самостоятельно риск, если скорость является проблемой. (см. @John ‘ s вопрос)

последнее редактирование: для jQuery 1.8 это должно быть:

затем использовать :containsi вместо :contains

начиная с jQuery 1.3, этот метод является устаревшим. Чтобы заставить это работать, он должен быть определен как функция:

Если кто-то (как мне) интересно что делать a и m[3] имею в виду содержит определение.

ключ / легенда: параметры, доступные jQuery для использования в определениях селектора:

r = jQuery массив проверяемых элементов. (например: Р.длина = число элементов)

Я = индекс элемента, находящегося в настоящее время под контролем, внутри массива r.

a = элемент в настоящее время находится под пристальным вниманием. Оператор Selector должен возвращать значение true, чтобы включить его в соответствующие результаты.

m[2] = nodeName или * что мы ищем (слева от двоеточия).

m[3] = param передается в селектор: (param). Обычно номер индекса, как в : nth-of-type (5), или строка, как в :цвет(синий).

в jQuery 1.8 вам нужно будет использовать

мало того, что этот регистр нечувствителен, но он позволяет мощные поиски, такие как:

Я бы предпочел пойти этим путем..

сюда, ты НЕ НАДО вмешаться в родной jQuery ‘.содержит’. Возможно, Вам понадобится значение по умолчанию позже. если его подделать, вы можете вернуться к stackOverFlow.

код обновления отлично работает в 1.3, но «содержит» должно быть в нижнем регистре на первой букве в отличие от предыдущего примера.

использовать ниже код, чтобы использовать «содержит», чтобы найти текст, игнорируя его чувствительности случай из HTML-кода

вы также можете использовать эту ссылку, чтобы найти код case igonring на основе вашей версии jquery, Make jQuery: содержит регистр без учета

у меня была аналогичная проблема со следующим не работает.

это работает и без необходимости для расширения

Это тоже работает, но, вероятно, попадает в категорию «ручной цикл».

более быстрая версия с использованием регулярных выражений.

Источник

Существует ли регистр символов jQuery: содержит селектор?

12 ответов

В конечном итоге я сделал для jQuery 1.2:

Это расширит jquery, чтобы иметь селектор: Contains без учета регистра, селектор: contains остается неизменным.

Редактировать: Для jQuery 1.3 (спасибо @ user95227) и позже вам нужно

Редактировать: очевидно доступ к DOM напрямую с помощью

В предыдущем выражении это значительно ускоряется, поэтому попробуйте на свой страх и риск, если скорость является проблемой. (см. @John вопрос )

Последнее редактирование: для jQuery 1.8 должно быть:

Начиная с jQuery 1.3, этот метод устарел. Чтобы это работало, его нужно определить как функцию:

Теперь вы можете получить соответствующие элементы в matchObjects и делать все, что захотите.

Более быстрая версия с использованием регулярных выражений.

См. Ниже, чтобы использовать «: содержит», чтобы найти текст, игнорирующий его чувствительность к регистру из кода HTML,

Вы также можете использовать эту ссылку, чтобы найти регистр игнорирования регистра, основанный на вашей версии jquery, Создать jQuery: содержит регистр символов

Вариант, который, кажется, работает немного быстрее и который также допускает регулярные выражения :

Это не только нечувствительно к регистру, но и позволяет осуществлять мощный поиск, например:

В jQuery 1.8 вам нужно будет использовать

Чтобы сделать его опционально нечувствительным к регистру: http://bugs.jquery.com/ticket/278

Затем используйте :containsi вместо :contains

Код обновления прекрасно работает в 1.3, но в отличие от предыдущего примера «содержит» должно быть в нижнем регистре на первой букве.

Это работает и без необходимости расширения

KEY / LEGEND: параметры, предоставляемые jQuery для использования в определениях селектора:

r = jQuery массив проверяемых элементов. (например: r.length = Количество элементов)

Элемент a = в настоящее время находится под пристальным вниманием. Оператор выбора должен возвращать true, чтобы включить его в соответствующие результаты.

m [2] = имя_узла или *, которое мы ищем (слева от двоеточия).

Источник

Как сделать jQuery Contains без учета регистра, включая jQuery 1.8+?

Я пытаюсь использовать регистр без учета регистра. Я попытался использовать решение в следующем вопросе stackru, но оно не сработало:

Для удобства решение скопировано здесь:

Вот где я использую это:

Мое использование оригинального с учетом регистра «содержит» в том же сценарии работает без каких-либо ошибок. У кого-нибудь есть какие-либо идеи? Я бы оценил это.

6 ответов

Это то, что я использую в текущем проекте, не было никаких проблем. Посмотрим, повезет ли вам больше с этим форматом:

В jQuery 1.8 API для этого изменился, версия jQuery 1.8+ будет такой:

Вы можете проверить это здесь. Для более подробной информации о 1.8+ пользовательских селекторах просмотрите вики Sizzle здесь.

Стоит отметить, что ответ правильный, но охватывает только :Contains а не псевдоним :contains что может привести к неожиданному поведению (или может быть использовано разработчиками для расширенных приложений, требующих как чувствительного, так и нечувствительного поиска).

Это может быть решено путем дублирования расширения для псевдонима:

Мне потребовалось некоторое время, чтобы понять, почему это не работает для меня.

Я бы сделал что-то подобное

И уходи :contains В одиночестве.

Так почему же jQuery не поддерживает его в своей библиотеке?! если это так просто.

Может быть поздно. но,

Я бы предпочел пойти по этому пути..

Таким образом, вы НЕ вмешиваетесь в NATIVE ‘.contains’ jQuery. Возможно, вам понадобится значение по умолчанию позже. если вы вмешаетесь, вы можете оказаться в stackOverFlow.

Источник

Как проверить, содержит ли строка другую строку без учета регистра в Java?

скажем, у меня есть две строки

я почти уверен, что contains() чувствителен к регистру, однако я не могу точно определить это из чтения документации. Если это так, то я полагаю, что мой лучший метод будет чем-то вроде:

все это в сторону, есть другой (возможно лучший) способ сделать это, не заботясь о чувствительность к регистру?

17 ответов

да, contains чувствителен к регистру. Вы можете использовать Java.утиль.регулярное выражение.Шаблон с флагом CASE_INSENSITIVE для сопоставления без учета регистра:

EDIT: если s2 содержит специальные символы regex (которых много), важно сначала процитировать его. Я исправил свой ответ, так как это первый, который люди увидят, но проголосуйте за Мэтта Куэйла, так как он указал на это.

вы хотите вызвать шаблон.цитата() на с2:

на Apache Commons библиотека очень полезна для такого рода вещей. И этот конкретный может быть лучше, чем регулярные выражения, поскольку регулярное выражение всегда дорого с точки зрения производительности.

Более Быстрая Реализация: Использование String.regionMatches()

использование regexp может быть относительно медленным. Он (медлительность) не имеет значения, если вы просто хотите проверить в одном случае. Но если у вас есть массив или коллекция из тысяч или сотен тысяч строк, все может идти довольно медленно.

в представленном ниже решении не используются регулярные выражения и toLowerCase() (который также медленный, потому что он создает другие строки и просто выбрасывает их после проверять.)

решение основывается на строку.regionMatches() метод, который, кажется, неизвестно. Он проверяет, если 2 String регионы совпадают, но важно то, что он также имеет перегрузку с удобным

этот код вернет строку » TRUE!- так же, как и то, что в нем содержались ваши персонажи.

более простым способом сделать это (не беспокоясь о сопоставлении шаблонов) будет преобразование обоих String s в нижнем регистре:

можно использовать регулярные выражения и это работает:

вот некоторые Unicode-дружественные, которые вы можете сделать, если вы вытащите ICU4j. Я думаю, что «игнорировать случай» сомнительно для имен методов, потому что, хотя первичные сравнения силы игнорируют случай, он описывается как специфика, зависящая от локали. Но, надеюсь, это зависит от локали так, как пользователь ожидал бы.

Я сделал тест, найдя нечувствительное к регистру совпадение строки. У меня есть вектор из 150 000 объектов со строкой как одно поле и хотел найти подмножество, которое соответствует строке. Я попробовал три метода:—4—>

конвертировать все в нижний регистр

используйте метод String matches ()

использовать регулярные выражения

результаты сроки являются:

нет попытки совпадения: 20 мс

понизить матч: 182 МС

регулярное выражение: 65 мс

регулярное выражение выглядит самым быстрым для этого случая использования.

в основном, это метод, который принимает две строки. Предполагается, что это не чувствительная к регистру версия contains(). При использовании метода contains вы хотите увидеть, содержится ли одна строка в другой.

этот метод принимает строку, которая является «sub», и проверяет, равна ли она подстрокам строки контейнера, которые равны по длине»sub». Если вы посмотрите на for цикл, вы увидите, что он повторяется в подстроках (это длина «sub») над строкой контейнера.

каждая итерация проверяет, является ли подстрока строки контейнера equalsIgnoreCase суб.

Если вам нужно искать строку ASCII в другой строке ASCII, например URL-адресом, вы найдете мое решение будет лучше. Я протестировал метод icza и мой для скорости, и вот результаты:

Источник

Понравилась статья? Поделить с друзьями:
Добавить комментарий
  • Как сделать успешный бизнес на ритуальных услугах
  • Выездной кейтеринг в России
  • Риски бизнеса: без чего не обойтись на пути к успеху
  • jprobe приложение для андроид
  • jpm дивиденды 2021 дата выплаты