我认为trim()
不存储修剪后的值。
我在用户提交他们的字符串之前对结果应用修剪并且它工作,它通过删除额外的空间正确显示。但是如果我取回修剪后的值,它会给我用户输入的原始值,它不会删除空间。
在从输入字段检索用户输入之前,我添加了trim()
:
input = $("<input type='text'>").val(txt);
input.trim()
它不起作用。
我认为trim()
不存储修剪后的值。
我在用户提交他们的字符串之前对结果应用修剪并且它工作,它通过删除额外的空间正确显示。但是如果我取回修剪后的值,它会给我用户输入的原始值,它不会删除空间。
在从输入字段检索用户输入之前,我添加了trim()
:
input = $("<input type='text'>").val(txt);
input.trim()
它不起作用。
你应该把它分配回去,否则它是没有意义的。
txt = txt.trim();
input = $("<input type='text'").val(txt);
注意:以上是使用原生 JavaScripttrim()
方法,假设txt
是纯字符串。如果您的站点应支持 IE8 及以下版本,请参阅此答案以了解如何添加此类支持。
更新,基于 OP 评论。事实证明,请求是截断所有内部空间,与 HTML 一样。为实现这一点,加上对修剪更改此行的更好支持:
var text = $(this).text();
对这三个:
var text = $.trim($(this).text());
while (text.indexOf(" ") > 0)
text = text.replace(" ", " ");
将trim()应用于字符串,即txt
但不应用于 jQuery 对象(文本框控件)
input = $("<input type='text'").val($.trim(txt));
该trim
方法是一个静态方法,即您从 jQuery 对象访问它,但它作用于您发送给它的数据,并返回结果。
要从输入中获取数据,修剪它,然后放回去:
input = $("<input type='text'>").val(txt);
input.val($.trim(input.val()))
您可能只想在将其放入输入之前对其进行修剪:
input = $("<input type='text'>").val($.trim(txt));
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/)