zoukankan      html  css  js  c++  java
  • openwrt中操作config遇到特殊字符的处理。

    在页面操作中,我们经常会碰到需要保存一段文本。而这段文本中会有<>'"&等符号。如果将这些符号存入config是行不通的,一般需要转换成&lt;&gt;等。而&又是特殊字符,在这里可以使用#38来代替这个&符号。

    在js中我们可以使用以下两个函数来转换(不包含回车换行,需要重新replace一下):

    function encodeSpecialChars(str /* String */) {
            return str.replace(/&/g, '#38amp;').replace(/</g, '#38lt;').replace(/>/g, '#38gt;').replace(/'/g, '#38acute;').replace(/"/g, '#38quot;');
        }
    
        function decodeSpecialChars(str /* String */) {
            return str.replace(/#38quot;/g, '"').replace(/#38acute;/g, '\'').replace(/#38gt;/g, '>').replace(/#38lt;/g, '<').replace(/#38amp;/g, '&');
        }

    以下是一段提交页面中content时的示例代码:

    XHR.get('<%=REQUEST_URI%>', {
            act          : 'add',
            title        : $('title').value,
            content      : encodeSpecialChars($('content').value.replace(/\r?\n/g, '<br />'))
        },
        function(x, data) {
            if (data.state) {
                if (data.info == "ok") {
                    alert('保存成功!');
                } else {
                    alert('更新失败!');
                }
            } else {
                alert('发送数据失败!错误代码:' + data.info);
            }
            obj.disabled = false;
        });

    用于保存config数据的代码:

        local title, content = c.get('title'), c.get('content')
        local uci = require "luci.model.uci".cursor()
    
        uci.set('welcomeinfo', 'welcomeinfo', 'title', title)
        uci.set('welcomeinfo', 'welcomeinfo', 'content', content)
    
        uci.commit('welcomeinfo')
  • 相关阅读:
    word2vec模型评估方案
    分词问题整理和发现
    11.1第一次相似度算法测试结果
    如何使用向量代表文档doc或者句子sentence
    fasttext学习笔记
    传统变量抽样
    统计抽样与非统计抽样
    误受风险和误拒风险
    企业所得税怎么算
    进一步审计程序
  • 原文地址:https://www.cnblogs.com/AUOONG/p/2516663.html
Copyright © 2011-2022 走看看