2011-09-14 2 views
5

Как я могу обрезать все пробелы из строки, даже если они вызваны неразрывный пространств ( )jQuery обстановка не удалена  ?

Например:

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

Значение обув является " foo " вместо "foo"

UPDATE Таким образом, проблема не в функции обрезки jQuery. Он отлично работает. Проблема заключается в функции обрезки MSAjax. jQuery, по праву, использует обнаружение функций, и если они не существуют, использует его реализацию.

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

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

+1

Работы для меня: http://jsfiddle.net/uR9WA/ –

+0

Похож на ошибку в 1.3.x - http://bugs.jquery.com/ticket/4980 –

ответ

3

Таким образом, проблема была не облицовка функции JQuery в. Он отлично работает. Проблема заключается в функции обрезки MSAjax. jQuery, по праву, использует обнаружение функций, и если они не существуют, использует его реализацию.

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

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

+1

Бог ненавижу IE ..... – Liam

+0

Есть ли способ обойти реализацию M $ и заставить обрезку jQuery? – jbyrd

1

Уверены ли вы в этом? Я попробовал немного измененную версию сниппета только сейчас:

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

и не было никаких пробелов по обе стороны от «Foo». http://jsfiddle.net/Ux7Wc/

Это было с помощью JQuery 1.6.2 в Firefox 5.

+0

Я больше не уверен. .it не работает в коде, и я смотрю на значения в отладчике, и это то, что, похоже, происходит. Но в jsfiddle я не могу реплицировать проблему. – CaffGeek

+0

Проблема заключается в том, что внутренняя оболочка IE (какой jquery использует, если она существует) не разделяет char 160, что тоже преобразуется nbsp – CaffGeek

+0

Исправление, это не родная обрезка IE, но Функция обрезки MSAjax – CaffGeek

Смежные вопросы