如何修剪文本框开头和结尾的空格?

use*_*925 4 html javascript

我想修剪文本框开头的任何空格,并修剪文本框末尾的任何空格.所以我在一个网站上发现了这个代码,它假设在开头,结尾和中间的多个空格中删除空格:

function trim(s) {
    s = s.replace(/(^\s*)|(\s*$)/gi,"");
    s = s.replace(/[ ]{2,}/gi," ");
    s = s.replace(/\n /,"\n");
    return s;
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,首先,3行代码中的哪一行是在中间修剪空格的那一行,因为我不需要那一行.但主要问题是如何让文本框访问此功能?

我尝试使用onkeypress但这没有用,下面是我尝试过的:

<p>Search: <input type="text" name="questioncontent" onkeypress="return trim(s)" /></p>
Run Code Online (Sandbox Code Playgroud)

所以我想要的是,例如,如果在文本框中输入此短语"我的名字是皮特".然后它应该删除开头和结尾的空格,使其显示为"我的名字是皮特".但是我该如何让它发挥作用呢?

更新:

发现trim()是jQuery,所以有人可以手动编码以删除文本框开头和结尾的空格吗?

HBP*_*HBP 8

您需要更改HTML:

<p>Search: <input type="text" name="questioncontent" onchange="return trim(this)" /></p>?
Run Code Online (Sandbox Code Playgroud)

将input元素作为参数传递给trim并使用onchange而不是onkeypress.

然后修剪需要:

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;
}?
Run Code Online (Sandbox Code Playgroud)

这会修改input元素的值,删除前导和尾随空格,用单个空格替换多个空格,并删除换行符后的任何空格.

JSfiddle:http://jsfiddle.net/jstoolsmith/ZNQQm