
其实你只需要转换 <> 这两个符号
/// <summary>
/// 转换成 HTML code
/// </summary>
/// <param name="str">string</param>
/// <returns>string</returns>
public static string Encode(string str)
{
str = strReplace("&"," & a m p;");
str = strReplace("'","''");
str = strReplace("\"","& q u o t;");
str = strReplace(" ","& n b s p;");
str = strReplace("<","& l t;");
str = strReplace(">","& g t;");
str = strReplace("\n","< b r>");
return str;
}
先把词库读到内存中的字典:以第一个字符为Key的字典,以List<string>为Value(考虑到可能有词汇第一个字符是相同的)
Dictionary<char, List<String>> 词库 = new Dictionary<char, List<String>>();
再用 SystemIOFileStream类 读取文件。
先读取一行string line = FileStream1ReadLine()
然后一个一个字符Read,判断是不是ContainsKey('字符'),如果含有,再把这个字符开头的列表中完整字符串读出来,然后进行比对
foreach (string 字符串 in 列表)
{
int 开始位置 = 当前字符在行中位置
int 搜索长度 = 要比较的字符串长度
使用lineIndexOf(字符串, 开始位置, 搜索长度) > 0 或者使用
lineContains(字符串) //哪种效率高要试试才知道
这样只需要把文件扫描一次,每次调用哈希表来判断字符,时间复杂度O(1),匹配时搜索当前行的小范围,性能比多次扫描大大提升。
}
我只提供思路,具体代码的自己写把。
如满意,请采纳,谢谢。
json中没有自带的过滤不合法字符的工具类,需要用户自己编写。
将源数据中的'、"、\\、空格、换行等都替换成转义符,这样你拼接的json数据就是正常的,显示出来格式和数据库中的一样。
function valueReplace(v) {
if (vindexOf("\"") != -1) {
v = vtoString()replace(new RegExp('(["\"])', 'g'), "\\\"");
}
else if (vindexOf("\\") != -1)
v = vtoString()replace(new RegExp("([\\\\])", 'g'), "\\\\");
return v;
}
以上就是关于如何过滤用户输入的非法html全部的内容,包括:如何过滤用户输入的非法html、sqlserver中有一张非法过滤词库表,表中5000+条数据,后台用C#,如何以最快速度对一篇文章进行非法过滤。、java : json 过滤不合法字符的工具包工具类工具等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)