[英]How to remove/trim spaces or tabs while writing?
我正在尝试在用户编写时使用JavaScript(在jQuery中)修剪String:
$(document).on('keydown', "input[type='text'], textarea", function(e) {
$(this).val( $(this).val().trim() );
console.log('fixing');
//if ($(this).val() == "") {
//alert('gwo!');
//}
} );
但是这里的问题是,当用户写一个空格来写另一个单词时,此代码将修剪输入中的数据,然后将下一个单词串联起来:
我很伟大
确实,我需要在用户使用剪贴板中的CTRL + V进行文本发送时删除选项卡或空格。
你能帮我吗?
我认为这就是您所需要的。 寻找重复的空格字符。 保存最后一个,然后删除其他。 使用RegExp的String.replace可以处理此问题。
我也使用keyup事件而不是keydown
$(document).on('keyup', "input[type='text'], textarea", function(e) { let val = $(this).val(); val = val.replace(/(?:^\\s+|\\s+?(\\s))(\\S+)/g, "$1$2"); val = val.replace(/\\s+(\\s)$/, "$1"); $(this).val( val ); } );
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <textarea cols="40" rows="10"></textarea>
甚至有必要在客户端上进行修剪吗? 如果很重要,那么无论如何您都需要在发球区上做,所以您也许可以将其留在那里。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.