面试题-使用IE的ActiveX对象过滤敏感词

2017/2/21 posted in  面试题 PHP
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script type="text/javascript">
        // -------------- 全局变量,用来判断文本域中是否包含脏词,默认为false,即不包含脏词-------
        var isDirty = false;
     //读取本地dirtyword词库   
    function readFile(filename){
    /*函数编辑区*/
        try {
            var fso = new ActiveXObject("Scripting.FileSystemObject");
            var file = fso.OpenTextFile(filename, 1);
            var fileContent = file.ReadAll();
            file.Close();
            return fileContent.split(' ');
        } catch (e) {
            alert('请开启ActiveX'); 
        }
    }

    

        /*
        * 提交表单的主方法
        * 在提交表单的时候对内容进行过滤并在文本域显示过滤后的内容
        */
        function submitForm1() {
            /*函数编辑区*/
            var messageValue = document.getElementById('message').value;
            messageValue = filterWord(messageValue);
            if (isDirty) {
            alert(messageValue);
                document.getElementById('message').value = messageValue;
                if (confirm('你的留言中含有不恰当的词语,系统已自动为你修改,是否继续提交?')) {
                    return true;
                }
                return false;
            }
            return true;
        }
        /*
        * 对传进来的messageValue过滤并返回新内容
        
        */
        function filterWord(messageValue) {
            // 根据文本域的id获取文本域对象内容
            /*函数编辑区*/
            var dirtyWords = readFile('c:/ciku.txt');
            for (var i = 0; i < dirtyWords.length; i++) {
                isDirty = true;
                messageValue = filterOneWord(messageValue, dirtyWords[i]);
            }
            return messageValue;
        }
        /*
        * 这个函数用来过滤单个词语, 如果messageValue中含有oneDirtyWord, 则用"**"替换这个oneDirtyWord
        * messageValue --- 要过滤的语句

        */
        function filterOneWord(messageValue, oneDirtyWord) {
        /*函数编辑区*/
        var regexp = new RegExp(oneDirtyWord,  'gi');
        return messageValue.replace(regexp, '**');
        }
 </script>
</head>
<body>
    <form name="message_board" id="message_board" action="aaa.html">
        <textarea name="message" id="message" cols="50" rows="10">
"In a world that's changing really quickly, the biggest risk is not taking any risk."
—— Mark Zuckerberg
        </textarea><br/>
        <input type="button" value="提交留言" id="submitMessage" onclick="submitForm1()"/>
    </form>
</body>
</html>