如何在写作时 remove/trim 空格或制表符?
How to remove/trim spaces or tabs while writing?
我正在尝试 trim 使用 javascript 的字符串(在 jQuery 中),同时用户正在编写:
$(document).on('keydown', "input[type='text'], textarea", function(e) {
$(this).val( $(this).val().trim() );
console.log('fixing');
//if ($(this).val() == "") {
//alert('gwo!');
//}
} );
但这里的问题是当用户写一个 space 来写另一个词时,这段代码 trims 将输入中的数据和下一个词连接起来,如下所示:
我很厉害
我真正需要的是在用户使用 CTRL+V 从剪贴板发送文本时删除制表符或 spaces。
你能帮忙吗?
甚至有必要 trim 在客户端上吗?如果它很重要,那么无论如何你都需要在发球时做,所以你可以把它留在那里。
我认为这就是您所需要的。查找重复的 space 个字符。保留最后一个并删除其他。 String.replace 使用 RegExp 可以解决这个问题。
另外我使用了 keyup 事件而不是 keydown
$(document).on('keyup', "input[type='text'], textarea", function(e) {
let val = $(this).val();
val = val.replace(/(?:^\s+|\s+?(\s))(\S+)/g, "");
val = val.replace(/\s+(\s)$/, "");
$(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>
我正在尝试 trim 使用 javascript 的字符串(在 jQuery 中),同时用户正在编写:
$(document).on('keydown', "input[type='text'], textarea", function(e) {
$(this).val( $(this).val().trim() );
console.log('fixing');
//if ($(this).val() == "") {
//alert('gwo!');
//}
} );
但这里的问题是当用户写一个 space 来写另一个词时,这段代码 trims 将输入中的数据和下一个词连接起来,如下所示:
我很厉害
我真正需要的是在用户使用 CTRL+V 从剪贴板发送文本时删除制表符或 spaces。
你能帮忙吗?
甚至有必要 trim 在客户端上吗?如果它很重要,那么无论如何你都需要在发球时做,所以你可以把它留在那里。
我认为这就是您所需要的。查找重复的 space 个字符。保留最后一个并删除其他。 String.replace 使用 RegExp 可以解决这个问题。
另外我使用了 keyup 事件而不是 keydown
$(document).on('keyup', "input[type='text'], textarea", function(e) {
let val = $(this).val();
val = val.replace(/(?:^\s+|\s+?(\s))(\S+)/g, "");
val = val.replace(/\s+(\s)$/, "");
$(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>