当用户按下输入消息时,JS替换功能会产生意外的EOF



在DataTable中,我从Django视图中获取文本,然后将其发送到自定义书面JS替换功能,以用我们的本地语言字母替换某些字符。完美地使用单行,但是当用户按Enter在"内部消息"中的输入时,它给出了意外的EOF。这是代码

html

    {% for comment in comments %}
        <tr>
             <td>      {{ comment.id }}      </td>
             <td>    {{ comment.req_id }}    </td>
             <td>    {{ comment.ans_id }}    </td>
             <td> <script>document.write(replace("{{ comment.comment_text }}"));</script> </td>
        </tr>
    {% endfor %}

错误img

JS

function replace(x) {
var text = String(x);
var lines = text.split("n");
var returnedText="";
for(i=0;i<lines.length;i++){
  returnedText += lines[i].toString().allReplace({'É™': 'ə', 'ı': 'ı', 'ö': 'ö', 'ü': 'ü','ç': 'ç','Ä°': 'İ','ÄŸ': 'ğ','ÅŸ': 'ş', 'Æ': 'Ə','Åž': 'Ş'});
  returnedText += "n";
}
return returnedText;
}
String.prototype.allReplace = function(obj) {
var retStr = this;
for (var x in obj) {
    retStr = retStr.replace(new RegExp(x, 'g'), obj[x]);
}
return retStr;
};

,而不是将字符串发送到JS,而是使用自定义标签

更值得
<td><script>document.write(replace("{{ comment.comment_text }}"));</script></td>

可以替换为: <td>{{comment.comment_text|convert_utf8 }}</td>

convert_utf8功能

@register.filter(name='convert_utf8')
def convert_utf8(value):
    return value.replace(unichr(198),unichr(399)).replace......#several replace

最新更新