我想修剪文本框开头的任何空格,并修剪文本框末尾的任何空格.所以我在一个网站上发现了这个代码,它假设在开头,结尾和中间的多个空格中删除空格:
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,所以有人可以手动编码以删除文本框开头和结尾的空格吗?
您需要更改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