JQuery отделка не удаляет? - PullRequest
       29

JQuery отделка не удаляет?

5 голосов
/ 14 сентября 2011

Как обрезать все пробелы в строке, даже если они вызваны неразрывными пробелами ( )

Например:

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

Значение foo равно " foo " вместо "foo"

UPDATE Итак, проблема не в функции обрезки jQuery. Работает отлично. Проблема в функции обрезки MSAjax. jQuery справедливо использует обнаружение функций и, если они не существуют, использует их реализацию.

К сожалению, реализация обрезки в MSAJax не удаляет символ 160 (без пробела). Тем не менее, jQuery regex trim делает это, поскольку понимает, что IE не включает char 160 в \ s.

Почему глупые проблемы с браузером всегда заканчиваются проблемой с тем, как M $ реализует что-то ???

Ответы [ 3 ]

3 голосов
/ 15 сентября 2011

Итак, проблема не в функции обрезки jQuery. Работает отлично. Проблема в функции обрезки MSAjax. jQuery справедливо использует обнаружение функций и, если они не существуют, использует их реализацию.

К сожалению, реализация обрезки в MSAJax не удаляет символ 160 (без пробела). Тем не менее, jQuery regex trim делает это, поскольку понимает, что IE не включает char 160 в \ s.

Почему глупые проблемы с браузером всегда заканчиваются тем, как M $ что-то реализует ???

1 голос
/ 14 сентября 2011

Это ошибка до JQuery 1.4.Пожалуйста, обновите.

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

1 голос
/ 14 сентября 2011

Ты уверен в этом? Я только что попробовал слегка модифицированную версию вашего фрагмента:

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

и по обе стороны от 'foo' не было пробелов. http://jsfiddle.net/Ux7Wc/

Это использовало jQuery 1.6.2 в Firefox 5.

...