继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

js技巧专题篇:关键词过滤和多选限制

ruibin
关注TA
已关注
手记 77
粉丝 9109
获赞 2572

这是上一篇密码强度检验的续集,关键词过滤涉及到关键词过滤。虽然关键词过滤大多是由后台来处理,但是前端如果直接处理掉,就会减轻后台的任务,从而降低后台压力。多选限制主要是在分类等可以多选单限制选择个数的情况,例如我们在慕课网上发表文章时,里面的标签可以最多选择3个这种情况。

相关html代码如下:

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>js技巧专题篇:关键词过滤和多选限制</title>
</head>
<body>
<textarea name="key1" id="key1" cols="30" rows="10">
    我喜欢做一些有意义的事情,例如分享文章,帮助需要帮助的人,就像大家对性感美女的喜  欢一样。
</textarea>
<button>过滤</button>
<br/>
<br/>
<select name="sel" id="sel" multiple>
    <option value="JavaScript">JavaScript</option>
    <option value="Html/Css">html/css</option>
    <option value="Html5">Html5</option>
    <option value="C">C</option>
    <option value="C++">C++</option>
    <option value="Java">Java</option>
</select>
<script src="js/keywordfilter.js"></script>
<script>
    var txt = document.getElementById('key1'),
            btn = document.querySelector('button'),
            opt = document.getElementsByTagName('option');
    btn.addEventListener('click', function() {
        keywordfilter(txt);
    })
    forbidcheck(opt);
</script>
</body>
</html>

相关js代码如下:

/**
 * Created by MAORUIBINon 2016-03-29.
 */
;(function(win) {
    var keywordfilter = function(txt) {
        var keyword = ['性', /['喜']{1}.{0,5}[欢]{1}/g];
        for (var i = 0; i < keyword.length; ++i) {
            txt.value = txt.value.replace(keyword[i], '***')
        }
    };
    var forbidcheck = function(sel) {
        var selectNum = 0,
            limit = 3;
        if (!Array.isArray(sel)) {
            sel = [].slice.call(sel);
        }
        for (var i = 0, len = sel.length; i < len; ++i) {
            sel[i].onclick = function() {
                if (selectNum < limit) {
                    this.selected = true;
                    selectNum ++;
                }else {
                    this.selected = false;
                }
            }
        }
    }

    win.keywordfilter = keywordfilter;
    win.forbidcheck = forbidcheck;
})(window)

当然,这个精选做得实在是太简陋,大家不必模仿,领会精神就行了^_^。

打开App,阅读手记
10人推荐
发表评论
随时随地看视频慕课网APP

热门评论

JS过滤...有创意

查看全部评论