5

我想修剪文本框开头的所有空格并修剪文本框末尾的所有空格。所以我在一个网站上找到了这段代码,该代码假设在开头、结尾和中间的多个空格处删除空格:

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

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

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

<p>Search: <input type="text" name="questioncontent" onkeypress="return trim(s)" /></p>

所以我想要的是,例如,如果在文本框“我的名字是皮特”中输入了这个短语。然后它应该删除开头和结尾的空格,以便显示“我的名字是皮特”。但是我怎样才能让它工作呢?

更新:

发现 trim() 是 jQuery,那么有没有人可以手动编码以删除文本框开头和结尾的空格的 javascript 等价物?

4

3 回答 3

12

你需要改变你的 HTML :

<p>Search: <input type="text" name="questioncontent" onchange="return trim(this)" /></p>​

将输入元素作为参数传递给修剪和使用 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;
}​

这会修改输入元素的值,删除前导和尾随空格,用单个空格替换多个空格,并删除换行符后的所有空格。

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

于 2012-05-25T06:17:45.497 回答
0
function trim (el) {
    el.value = el.value.
       replace (/(^\s*)|(\s*$)/, ""). // removes leading and trailing spaces
       replace (/[ ]{2,}/gi," ").       // replaces multiple spaces with one space 
       replace (/\n +/,"\n");           // Removes spaces after newlines
    return;
}​
于 2014-04-14T12:47:35.867 回答
0

阅读评论..这实际上取决于该功能的使用方式。我试图在 上进行测试onkeypress,但这并没有达到您想要的效果。但是,我确实得到了与您想要的类似的东西,尽管我仍然不确定这是否是您想要的。

我不得不稍微修改该函数以使用您的代码,但基本上,在模糊时,它会执行该函数,并相应地更改输入文本。

于 2012-05-25T01:57:56.967 回答