jQuery修剪不删除?

时间:2011-09-14 15:19:30

标签: jquery whitespace trim

如何修剪字符串中的所有空格,即使它们是由不间断的空格( 

引起的

例如:

var foo = $.trim($('<p>&nbsp;foo&nbsp;</p>').text());

foo的值是" foo "而不是"foo"

更新 所以,问题不是jQuery的修剪功能。它很棒。问题是MSAjax的修剪功能。正确地说,jQuery使用函数检测,如果它们不存在,则使用它的实现。

不幸的是,MSAJax的修剪实现不会剥离char 160(非破坏空间)。但是,jQuery正则表达式修剪确实如此,因为它意识到IE在\ s中不包含char 160。

为什么愚蠢的浏览器问题总是最终成为M $如何实现的问题?

3 个答案:

答案 0 :(得分:3)

所以,问题不是jQuery的修剪功能。它很棒。问题是MSAjax的修剪功能。正确地说,jQuery使用函数检测,如果它们不存在,则使用它的实现。

不幸的是,MSAJax的修剪实现不会剥离char 160(非破坏空间)。但是,jQuery正则表达式修剪确实如此,因为它意识到IE在\ s中不包含char 160。

为什么愚蠢的浏览器问题总是最终成为M $如何实现的问题?

答案 1 :(得分:1)

你确定吗?我刚刚尝试了一个略微修改过的代码片段版本:

var foo = $.trim($('<p>&nbsp;foo&nbsp;</p>').text());
alert('#' + foo + '#');

并且'foo'的两边都没有空格。 http://jsfiddle.net/Ux7Wc/

这是在Firefox 5中使用jQuery 1.6.2。

答案 2 :(得分:1)

这是JQuery 1.4之前的一个错误。请升级。

http://bugs.jquery.com/ticket/4980