Как обрезать специальные символы с начала и конца ввода html, используя jQuery или JavaScript? - PullRequest
0 голосов
/ 27 мая 2020

У меня есть текстовое поле в html, где я хочу удалить все специальные символы в начале и конце строки, есть много ответов, чтобы удалить строку с индексом 0 / str.length или с помощью string.replace или регулярное выражение. Но если нет ответа о том, как избавиться от всех специальных символов в начале и конце данных текстового поля. У меня есть диапазон символов.,: '-_ /, который не может быть в начале или в конце ввода.

В jquery у меня есть событие размытия, которое будет выполнять задачу обрезки символов в диапазоне

Например, псевдокод:

$( "#txtbox1" ).blur(function(){ 
    var regex = "(\.\,\:\'\\\-\_\/)+";
    var str = $(this).val();
    $(this).val(str.replace(regex,""));
});    

Но каким-то образом Я не могу понять, как указать, что замена должна быть только в начале и конце, а не посередине. В текстовом поле может быть два предложения. Любые предложения приветствуются.

Ответы [ 2 ]

2 голосов
/ 27 мая 2020

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

^[-.,:'_/]+|[-.,:'_/]+$

Объяснение приведенного выше регулярного выражения:

^ - представляет начало тестовой строки.

| - представляет чередование.

$ - означает конец заданная тестовая строка.

[-.,:'_/]+ - начало или конец строки содержит один или несколько упомянутых символов.

Демонстрация вышеуказанного регулярного выражения здесь.

Реализация в JAVASCRIPT (JQUERY). Вы можете соответствующим образом изменить код.

const regex = /^[-.,:'_/]+|[-.,:'-_/]+$/gm;
const str = `bsvisbvskbvksv
nvlvnlvlv slcls
vnelvnelvnelv vnvsvnlvnl!
ocnsocnsocnosc ohoiIBIBiiwciv!
:nvkvnskvbskv
-bvksvbskvbsk sncksncks -cnscns-
--bvsjvbjvbjbvdbvkdbvkd-- vvnskvnskd --
lsvnslvnlsvnls:
Hello world
hellow WOLDF`;
//Notice in the 6th case above; only the last "-" gets replaced
const subst = ``;

// The substituted value will be contained in the result variable
const result = str.replace(regex, subst);

console.log(result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
0 голосов
/ 27 мая 2020

Итак ... Я новичок в регулярных выражениях, но я разработал кое-что, что должно сработать для вас, если не дайте мне знать:

$('#form').on('submit', (e) => {
        e.preventDefault();
        let value = $('input[name="input"]').val();

        value = value.replace(
          /^[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]/, // Replace first character
          ''
        );

        value = value.replace(
          /[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]$/, //Replace last character
          ''
        );

        console.log(value); // => Gives you the replaced value
      });
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <form id="form">
      <input type="text" name="input" />
      <input type="submit" />
    </form>

    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    
  </body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...