我想修剪文本框开头的任何空格,并修剪文本框末尾的任何空格。所以我在一个网站上找到了这个代码,假设它在开头,结尾和中间的多个空格中删除了空格:
function trim(s) {
s = s.replace(/(^\s*)|(\s*$)/gi,"");
s = s.replace(/[ ]{2,}/gi," ");
s = s.replace(/\n /,"\n");
return s;
}
我的问题是,首先,3行代码中的哪一行是在中间修剪空格的那一行,因为我不需要那一行。但主要问题是如何让文本框访问此功能?
我尝试使用onkeypress但这没有用,下面是我尝试过的:
<p>Search: <input type="text" name="questioncontent" onkeypress="return trim(s)" /></p>
所以我想要的是,例如,如果在文本框中输入此短语“我的名字是皮特”。然后它应该删除开头和结尾的空格,使其显示为“我的名字是皮特”。但是我如何让它发挥作用?
更新:
发现trim()是jQuery,所以有人可以用手工编码来删除文本框开头和结尾的空格吗?
答案 0 :(得分:8)
您需要更改HTML:
<p>Search: <input type="text" name="questioncontent" onchange="return trim(this)" /></p>
将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;
}
这会修改input元素的值,删除前导和尾随空格,用单个空格替换多个空格,并删除换行符后的任何空格。
答案 1 :(得分:0)
阅读评论..这实际上取决于函数的使用方式。我尝试在onkeypress
上进行测试,但是没有达到预期的效果。然而,我确实得到了similar到你想要的东西,尽管我仍然不确定这是不是你想要的。
我必须稍微修改一下这个函数才能使用你的代码,但基本上,在模糊时,它会执行函数,并相应地改变输入文本。
答案 2 :(得分: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;
}