我认为trim()
不存储修剪后的值。
我在用户提交字符串之前对结果应用trim并且它正常工作,它通过删除额外的空间正确显示。但是如果我重新检索修剪后的值,它会给我原始的用户输入,但不会删除空间。
在我从输入字段中检索用户输入之前,我添加了trim()
:
input = $("<input type='text'>").val(txt);
input.trim()
它不起作用。
答案 0 :(得分:2)
你应该把它归还,否则就没有意义了。
txt = txt.trim();
input = $("<input type='text'").val(txt);
注意:以上是使用本机JavaScript trim()
方法,假设txt
是纯字符串。如果您的网站应支持IE8及更低版本,请参阅this answer以了解如何添加此类支持。
根据OP评论进行更新。事实证明,请求是截断所有内部空间,就像HTML一样。为实现这一目标,加上更好的支持改变这条线:
var text = $(this).text();
对于这三个人:
var text = $.trim($(this).text());
while (text.indexOf(" ") > 0)
text = text.replace(" ", " ");
答案 1 :(得分:1)
将trim()应用于字符串,即txt
,但不应用于jQuery对象(文本框控件)
input = $("<input type='text'").val($.trim(txt));
答案 2 :(得分:1)
trim
方法是一种静态方法,即您从jQuery对象访问它,但它会对您发送到它的数据起作用,并返回结果。
要从输入中获取数据,修剪它并将其放回原位:
input = $("<input type='text'>").val(txt);
input.val($.trim(input.val()))
您可能只想在将其放入输入之前修剪它:
input = $("<input type='text'>").val($.trim(txt));
答案 3 :(得分:0)
trim方法不会更改原始字符串。您需要将其结果归因于变量才能获得结果。
------------------------------------------
请注意以下说明:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/Trim
描述
trim方法返回从两端剥去空白的字符串。 trim不会影响字符串本身的值。
------------------------------------------
除此之外,请允许我建议您通过其ID来引用输入字段 (例如:$(“#texto”))
<!doctype html>
<html lang="en">
<head>
<meta charset="iso-8859-1">
<title>jQuery.trim demo</title>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script>
$(document).ready(function(){
var txt = " lots of spaces before and after ";
alert('pause');
$("#texto").val("'" + txt.trim() + "'"); // ok
// $("<input type='text'>").val("'" + txt.trim() + "'"); // nok
});
</script>
</head>
<body>
<input type='text' id="texto" size='40' />
</body>
</html>
(示例改编自页面http://api.jquery.com/jQuery.trim/)