Все пробелы удалены и обычный текст при вставке во все поля ввода и текста - PullRequest
0 голосов
/ 19 сентября 2018

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

По сути, я хочу, чтобы события копирования и вставки были только в виде простого текста и удаляли все пробелы отдельноот разрывов строк и текстовых пробелов в процессе копирования и вставки.

(пробел означает все, что нельзя сделать с помощью клавиши ввода или пробела ... Такие вещи, как клавиша табуляции и т. д.)

Мне нужно, чтобы это произошло, потому что этот раздел будет входить в json, и без этого он сломает строку json.

Я буду делать другие проверки относительно кавычек и т. Д.

Вы можете увидеть jfiddle здесь

Вот код, который я использовал:

jQuery(document).ready(function($){

"use strict";

document.querySelector("input, textarea").addEventListener("paste", function(e) {
    e.preventDefault();
    var text = e.clipboardData.getData("text/plain");
    text = text.replace(/^\s+|\s+$/g,'');
    document.execCommand("insertHTML", false, text);
});

});

Заранее спасибо за любую помощьпри условии.

Ответы [ 2 ]

0 голосов
/ 19 сентября 2018
$(document).on('paste', 'textarea', function(e) {
  e.preventDefault();
  var text = e.originalEvent.clipboardData.getData('Text');
  text = text.trim();
  text = text.replace(/\s+/g,' ').trim();
  $(this).val(text);
});

@ Robert. Вы можете использовать функцию .trim(), которая может удалять только начальные и конечные пробелы.Вы можете заменить text = text.trim(); на text = text.replace(/\s+/g,' ').trim();, и это будет работать и для внутреннего текста.Я думаю, это то, чего ты хочешь.Если хочешь что-то, то смело спрашивай.

0 голосов
/ 19 сентября 2018

Попробуйте подписаться

$(document).on('paste', 'textarea', function(e) {
  e.preventDefault();
  var PlainText = e.originalEvent.clipboardData.getData('Text');
  PlainText = PlainText.replace(/\s+/g, '');
  $(this).val(PlainText);
  });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea placeholder="Paste Your Text..."></textarea >
...