Java Action получает «\ r \ n» для каждой новой строки в поле textarea, но Javascript получает только «\ n»

0

Я хочу автоматически вырезать строку из текстового поля до 255 символов. , Чтобы мое действие получило всего 255 символов.

Но проблема в том, что Javascript считает разрыв строки одним символом, в то время как Java рассматривает его как два ("\r\n").

Поэтому, даже если я ограничу длину строки текстовой области до 255 символов, следуя коду

$('textarea[name*="matterData.customFields"]').each(function () {
 if($(this).val().length>=255){
    a=$(this).val().substring(0, 254);
    $(this).val(a);
 }

длина строки действия всегда больше 255 символов, так как новая строка изменяется на "\r\n"

Как я могу удалить этот дополнительный \r из самого jQuery?

Теги:

1 ответ

0
Лучший ответ

Вы не можете удалить что-то, чего там нет, но что вы можете сделать, это добавить его, прежде чем проверять длину...

$('textarea[name*="matterData.customFields"]').each(function () {
     var text = $(this).val();
     text = text.replace(/\n/g, "\r\n");
     if(text.length >= 255){
        a = text.substring(0, 254);
        $(this).val(a);
     }
//...
}

Если вы обнаружите, что даже при определенном "\r\n" java все еще заменяет "\n", то есть он становится "\r\r\n" тогда вы можете просто удалить "\r" снова после проверки и подстрока...

if(text.length >= 255){
    a = text.substring(0, 254);
    a = a.replace(/\r/g, "");
    $(this).val(a);
}
  • 0
    Хорошо. Но это означает, что для пользователя 2 действительных символа будут удалены для каждого переноса строки .. :(
  • 0
    да, но если это ваши требования, то это то, что должно произойти. Вы можете удалить \r на Java-стороне вещей ... или вы можете просто разрешить больше символов, если это действительно так много значит

Ещё вопросы

Сообщество Overcoder
Наверх
Меню