我想裁剪文本框开头的空格和文本框末尾的空格。所以我在一个网站上找到了这段代码,它应该删除开头、结尾的空格和中间的多个空格:
function trim(s) {
s = s.replace(/(^\s*)|(\s*$)/gi,"");
s = s.replace(/[ ]{2,}/gi," ");
s = s.replace(/\n /,"\n");
return s;
}我的问题是,首先,3行代码中的哪一行是中间的空格,因为我不需要这一行。但是主要的问题是如何让textbox访问这个函数?
我试过使用onkeypress,但这不起作用,下面是我试过的:
<p>Search: <input type="text" name="questioncontent" onkeypress="return trim(s)" /></p>因此,我想要的是,例如,如果在文本框‘My Name is Pete’中输入此短语。然后,它应该删除开头和结尾的空格,这样它就会显示‘我的名字是Pete’。但是我怎么才能让它工作呢?
更新:
发现trim()是jQuery,那么有没有人有与之等效的javascript,可以手工编码来删除textbox开头和结尾的空格?
发布于 2012-05-25 14:17:45
您需要更改您的HTML:
<p>Search: <input type="text" name="questioncontent" onchange="return trim(this)" /></p>将输入元素作为参数传递给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;
}这将修改输入元素的值,删除前导空格和尾随空格,用单个空格替换多个空格,并删除换行符后面的所有空格。
JSfiddle:http://jsfiddle.net/jstoolsmith/ZNQQm
发布于 2012-05-25 09:57:57
阅读评论..这实际上取决于函数是如何使用的。我尝试在onkeypress上测试它,但是没有达到你想要的效果。然而,我确实得到了你想要的东西,尽管我仍然不确定这是否是你想要的。
我不得不稍微修改函数来处理你的代码,但基本上,在模糊的情况下,它会执行函数,并相应地修改输入文本。
发布于 2014-04-14 20:47:36
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;
}https://stackoverflow.com/questions/10747119
复制相似问题