jQuery 在输入属性更改时删除第一个和最后一个 space

jQuery remove first and last space on input propertychange

我想删除所有事件(keyup/keydown/oncopy/onpaste 等)的任何输入的第一个和最后一个 space。

我尝试使用以下代码,但它不起作用。

 $("body").on("input propertychange", "input", function (e) {               
                if (e.which === 32 && e.target.selectionStart === 0) {
                    return false;
                }
 });

也许 trim() 就是您要查找的内容: https://api.jquery.com/jQuery.trim/

您需要更改您的 HTML :

function trim (el) {
    el.value = el.value.
       replace (/(^\s*)|(\s*$)/gi, ""). // removes leading and trailing spaces
       replace (/[ ]{2,}/gi," ").       // replaces multiple spaces with one space 
       replace (/\n +/,"\n");           // Removes spaces after newlines
    return;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Enter value : <input type="text" name="test_input" onchange="return trim(this)" />

你能检查一下我上面的代码片段吗?

您应该使用 jquery 的 trim() 函数,这对于删除第一个和最后一个 space 很有用。您可以从 https://api.jquery.com/jQuery.trim/.

获得更多想法

例如$.trim(" hello, how are you? "); 给你 "hello, how are you?" 输出。