我想通过粘贴格式化传入的文本,但我采取的方法只允许替换现有文本或添加到文本,因此选定的文本是。
那么如何在粘贴事件上获取选定的文本。
我不关心跨浏览器支持。
它应该如何:
的JavaScript / jquery的
$(document).ready(function(){
function isHex(h) {
let a = parseInt(h,16);
return (a.toString(16) ===h.toLowerCase())
}
function formatText(text) {
if(isHex(text)){
let splitedText = text.match(/[\s\S]{1,2}/g) || [];
splitedText = splitedText.join(' ');
return splitedText;
}
return text;
}
$('textarea[name=plainText]').on('paste', function(event) {
let formatedText = formatText(event.originalEvent.clipboardData.getData('text'));
$(this).val($(this).val() + formatedText);
//or
// $(this).val(formatedText);
return false;
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea placeholder="Message" name="plainText" id="plainText" onfocus="this.placeholder = ''" onblur="this.placeholder = 'Message'"></textarea>
答案 0 :(得分:0)
http://code.google.com/p/rangyinputs
$(document).ready(function(){
$('textarea[name=plainText]').on('paste', function(event) {
let formatedText =
formatText(event.originalEvent.clipboardData.getData('text'));
$("#plainText").replaceSelectedText(formatedText);
return false;
})
});