Java Action接收textarea字段中每个新行的“\ r \ n”但Javascript只获得'\ n'

时间:2014-01-21 09:19:30

标签: java javascript jquery

我想自动从textarea剪切一个字符串,最多255个字符。 。所以我的Action只有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"

如何从jQuery中删除这个额外的\ r?

1 个答案:

答案 0 :(得分: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);
}