FF и IE - способ обращения \ n в текстовом поле - PullRequest
0 голосов
/ 31 октября 2010

Я делаю текстовую область с jeditable. Содержимое сохраняется и загружается из базы данных. Но у меня возникли некоторые проблемы, связанные с тем, что IE и FF по-разному обрабатывают переводы строк.

После некоторой отладки я обнаружил загадочное поведение в FF. Например, если я ввожу в textarea:

1
2

Вернется

1<br>2

Что хорошо. Но если я напишу:

1
2
3

Возвращает

1<br>2<br>
3

Как получилось? И как мне сделать регулярное выражение для этого ненормального поведения.

Атм. я делаю это регулярное выражение:

  data      : function(value, settings) {
      /* Convert <br> to newline. */
      retval = value(/<br[\s\/]?>/gi, '\n');
      return retval;
 },

Что отлично работает в IE, но в FF (из-за этого поведения) возвращает больше разрывов строк, чем предполагалось.

Можете ли вы помочь?

Заранее спасибо

1 Ответ

0 голосов
/ 31 октября 2010

Если вы ожидаете, что в тексте нет символов новой строки, почему бы просто не удалить их, прежде чем преобразовать <br> s в символы новой строки?

value = value.replace(/(\r\n|[\r\n])/g,'');
retval = value.replace(/<br[\s\/]?>/gi, '\n');
...