2012-02-26 4 views
0

У меня есть строка, и я пытаюсь заменить все & nbsp в тегах пустым пространством. Все, кроме тега, но не должны быть заменены, то, что мне в основном нужно сделать, это проверить, имеет ли строка & nbsp «< a» (без пробела) перед ним. Например, если у меня была строка:Заменить конкретные части строки

&nbsp<a&nbsphref="#"></a> 

Тогда это должно быть превращено в:

&nbsp<a href="#"></a> 

Есть ли способ, чтобы проверить, есть ли строка & NBSP «<» до него, и если он заменит его? Я посмотрел на функцию замены javascript, и я знаю, как заменить все строки & nbsp, но не только те, у которых определенная строка infront. Надеюсь, что имеет смысл и дайте мне знать, если у вас есть идеи, спасибо :)

+0

использовать HTML-парсер – scibuff

+1

И почему вы не исправляете код, генерирующий этот беспорядок? – epascarello

+0

Проблема заключается в том, что я показываю содержимое текстового поля в div, поэтому мне нужно изменить пробелы в строке на & nbsp, иначе браузер сократит несколько пробелов до одного. например: «привет ... форум!» (удалить точки) будет сокращен до «привет форума!». – user1199434

ответ

0

Если у вас есть контроль над строкой, вы должны рассмотреть возможность включения точки с запятой по той причине, которую описал Kolink.

В любом случае, это будет делать трюк (и в этом примере, я включаю точку с запятой):

var string = "&nbsp;<a&nbsp;href='#'></a>"; 
string.replace("<a&nbsp;","<a "); 

Это выглядит для фразы <a&nbsp; в строке и заменяет его <a.

+0

Конечно, хорошо, что было очевидно .. Спасибо Пурмоу за блестящий и быстрый ответ! – user1199434

+0

@ user1199434: На самом деле это не сработало бы. См. Мое последнее изменение. (И если я помог, конечно, полезно принять ответы). – Purag

+0

Это действительно работает очень хорошо, я просто использовал string.replace (" user1199434

0

Сущность &nbsp; с точкой с запятой на конце. Просто потому, что браузер не беспокоится о поиске точки с запятой, не означает, что это необязательно. Это ТРЕБУЕТСЯ, иначе объект не сформирован, и более строгий браузер может его отклонить.

В этой связи ваша проблема невероятно проста в решении: Замените /<a&nbsp/g на "<a ".

+0

Спасибо за отзыв Я добавил точки с запятой .. – user1199434

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