留言板过滤 脏字 问题 求 一个能用的 正则表达式匹配并替换. 如过滤 TextBox1 里面的文本
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了留言板过滤 脏字 问题 求 一个能用的 正则表达式匹配并替换. 如过滤 TextBox1 里面的文本相关的知识,希望对你有一定的参考价值。
在网上 复制粘贴的就别来 能用的话 追加 分
请把 源码发上来 学习一下
以下敏感字 代表脏字
首先,敏感字有很多,可能随时都需要增加,这样的话,如果您将敏感字做成变量的话局限性是会很大的。如果能将其作为数据保存在数据库里,会好点,这样弹性也大些。
其次,如果您还需要替换的话,正则表达式是帮不了您的。它只是一个匹配模板。如果这样的,您根本就不需要用到正则表达式。您在后台建立一个方法,用已转换敏感字,在保存的时候调用该方法,就可以达到效果。以下是该方法的思路:
1:将数据库的敏感字找出来, 2:遍历该敏感字 3:用最简单的replace()方法替换 4 保存到数据里。
这样就达到了您的要求了。请原谅我不能把代码完整写下来,因为我觉得有了这个思路您应该就可以自己写出来了。 条条大道通罗马,如果您觉得我这个方法可行的话。就请参考以下吧。 祝您早日解决问题. 参考技术A 如果只是简单的过滤用数组应该就可以了,如:
string[] strDirty="tmd","骂人";
string str="TMD";
if(Array.IndexOf(strDirty,str.ToLowerCase())>-1)
//替换,不用写了吧~
参考技术B 我觉得通常的做法是应该把所有脏话写进一个有格式的文件中,例如XML
然后有发言的时候就去XML中匹配就好了 参考技术C 俺通常用的是C#
TextBox1.Text = Regex.Replace(html, @"正则", "要替换的字符");
有源文本的话,我可以帮您写正则部分,希望对您有一点点帮助。 参考技术D 已经发到你的 Hi百度上 分给我本回答被提问者采纳
求只能输入 正数和两位小数 的正则表达式,要能用的。。。
我在网上找了好久,发现这个还差不多[0-9]+\.?[0-9]*,就是不能控制小数的位数。请各位大侠,发能用的。。。
/*** 校验精确到小数点后最多两位的数字
* @author g8up.cn
* @date 2017.06.14
*/
//测试
function test( reg )
// 用例: case + 预期
const ret = [
case:\'0\',
exp: true,
,
case:\'0.1\',
exp: true,
,
case:\'0.12\',
exp: true,
,
case:\'0.123\',
exp: false,
,
case:\'-0.12\',
exp: true,
,
case:\'12\',
exp: true,
,
case:\'012\',
exp: false,
,
case:\'-012\',
exp: false,
,
case:\'12.0\',
exp: true,
,
case:\'12.\',
exp: false,
,
case:\'00\',
exp: false,
,
case:\'-0\',
exp: true,
,
case:\'-12.123\',
exp: false,
,
case:\'-0.1.2\',
exp: false,
,].filter( item =>
return reg.test( item.case) !== item.exp;
);
console.log(\'验证不通过的用例有\', ret.map(item=>item.case).join(\'\\n\') );// 打印非预期
var reg = /^((?:-?0)|(?:-?[1-9]\\d*))(?:\\.\\d1,2)?$/;
test( reg ); 参考技术A 用这个\d1,\.\d2$
{2}中 2 就是来匹配小数位数的,$表示结尾的意思。 参考技术B /^([1-9]\\d*|0)(\\.\\d1,2)?$/
/^([1-9]\\d*|0)(\\.\\d1,2)?$/
匹配整数或最多两位小数
参考技术C ^([1-9][0-9]*)(\.[0-9]2)?$|^(0\.[0-9]2)$ 参考技术D [0-9]+\.?[0-9]0,2以上是关于留言板过滤 脏字 问题 求 一个能用的 正则表达式匹配并替换. 如过滤 TextBox1 里面的文本的主要内容,如果未能解决你的问题,请参考以下文章