Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.06.2018, 08:44
Профессор
Отправить личное сообщение для Artur_Hopf Посмотреть профиль Найти все сообщения от Artur_Hopf
 
Регистрация: 13.03.2018
Сообщений: 278

Помогите изменить фильтр текста чтобы он не учитывал символ
Добрый день. Есть функция поиска по таблице, которая просто находит совпадения и выдает результат:
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<input type="text" id="myInput" placeholder="Введите данные для поиска по таблице"></br></br>
<table class="table" id="table" border="1">
   <thead id ="myTableHead" >
            <tr>
                <th scope="col">ФИО</th>
                <th scope="col">Номер</th>
            </tr>
     </thead>
     <tbody id="myTable">
           <tr>
           <td class="text-center">ФИО</td>
           <td class="text-center">Человек. №1</td>
            </tr>
            <tr>
           <td class="text-center">ФИО</td>
           <td class="text-center">Человек №2</td>
           </tr>
     </tbody>
            </table>
<script>
$(document).ready(function(){
    filterTable();
});
function filterTable(){
    $("#myInput").on("keyup", function() {
        var value = $(this).val().toLowerCase();
        $("#myTable tr").filter(function() {
            $(this).toggle($(this).text().toLowerCase().indexOf(value) > -1);
        });
    });
}
</script>


Нужно чтобы поиск не учитывал знаки [№] и [.] . Например в поиске можно просто ввести Человек 1 , и он бы нашел в таблице Человек. №1. То есть совпадения по пробелу оставить, а именно № и точку чтобы мог игнорить. Но если в поиске они введены то находил бы.
Ответить с цитированием
  #2 (permalink)  
Старый 18.06.2018, 09:21
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,118

Сообщение от Artur_Hopf
Нужно чтобы поиск не учитывал знаки [№] и [.] . Например в поиске можно просто ввести Человек 1 , и он бы нашел в таблице Человек. №1. То есть совпадения по пробелу оставить, а именно № и точку чтобы мог игнорить.
Как вариант:
- анализировать строку поска
- находить там цифры и менять на
№?<цифра>\.?

- потом выполнять поиск в тексте

Т.е. делать нужное регулярное выражение, а потом им выполнять поиск.
Ответить с цитированием
  #3 (permalink)  
Старый 18.06.2018, 11:57
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

Artur_Hopf,
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<input type="text" id="myInput" placeholder="Введите данные для поиска по таблице"></br></br>
<table class="table" id="table" border="1">
   <thead id ="myTableHead" >
            <tr>
                <th scope="col">ФИО</th>
                <th scope="col">Номер</th>
            </tr>
     </thead>
     <tbody id="myTable">
           <tr>
           <td class="text-center">ФИО</td>
           <td class="text-center">Человек. №1</td>
            </tr>
            <tr>
           <td class="text-center">ФИО</td>
           <td class="text-center">Человек №2</td>
           </tr>
     </tbody>
            </table>
<script>
$(function(){
    filterTable();
});
function filterTable(){
    $("#myInput").on("input", function() {
        var value = $(this).val().toLowerCase();
        value = value.replace(/\s+/g,"[\\s\\S]+?");
        value = new RegExp(value);
        $("#myTable tr").filter(function() {
          !value||$(this).toggle(value.test($(this).text().toLowerCase()));
        });
    });
}
</script>
Ответить с цитированием
  #4 (permalink)  
Старый 18.06.2018, 16:47
Профессор
Отправить личное сообщение для Artur_Hopf Посмотреть профиль Найти все сообщения от Artur_Hopf
 
Регистрация: 13.03.2018
Сообщений: 278

Спасибо большое
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Предполагается наличие ';' в IE7- FINoM (X)HTML/CSS 5 25.08.2012 16:05
Как сделать чтобы textarea тянулась в высоту при добавлении в нее текста? javasc Общие вопросы Javascript 4 27.03.2012 22:14
Как изменить цвет текста в textarea Joshka Общие вопросы Javascript 4 04.05.2011 16:09
удалить лишний символ в блоке текста lammeR Элементы интерфейса 8 01.06.2010 23:23
Как сделать чтобы text() брал только текст родителя без текста вложенных контейнеров? Andrey32 jQuery 3 23.05.2009 01:33