工程是一门科学,科学是严谨的。

屏蔽敏感词的正则表达式

/(?!.*\[徽\]\[信\]|.*紸 微|.*互动逡|.*qun|.*v辛|.*v信|.*v欣|.*羣|.*裙|.*企业裙|.*亻言|.*微信)^.*$/ig.test('微信')

javascript版本,如需其他版本,自行转换

var newword = '微信';
var sourceWords = '[徽][信]|紸 微|互动逡|qun|v辛|v信|v欣|羣|裙|企业裙|亻言';
txtWords = filterRegex(sourceWords);
var words = txtWords.split('|');
for (i = 0, len = words.length; i < len; i++) {
    words[i] = ".*" + words[i];
}
var pattern = "(?!" +
    words.join("|") +
    ")^.*$";
var js = "/" + pattern + "/ig.test('" + newword + "')";
console.log(js);
if (eval(js)) {
    //不存在敏感词
} else {
    //存在敏感词
}

// 过滤正则表达式保留字符
function filterRegex(txtWords) {
    return txtWords
    .replace(/\\/ig, "\\\\")
    .replace(/\*/ig, "\\\*")
    .replace(/\^/ig, "\\\^")
    .replace(/\$/ig, "\\\$")
    .replace(/\//ig, "\\\/")
    .replace(/\?/ig, "\\\?")
    .replace(/\!/ig, "\\\!")
    .replace(/\;/ig, "\\\;")
    .replace(/\(/ig, "\\\(")
    .replace(/\)/ig, "\\\)")
    .replace(/\{/ig, "\\\{")
    .replace(/\}/ig, "\\\}")
    .replace(/\[/ig, "\\\[")
    .replace(/\]/ig, "\\\]");
}

 

posted @ 2015-12-29 11:30  大圣的笑  阅读(3434)  评论(0编辑  收藏  举报