一个简单的用javascript实现的页面内容过滤显示小程序源码

一个简单的使用javascript实现的,根据用具输入,动态过滤页面显示内容的小程序。使用了正则表达式匹配用户输入,忽略前后空格,忽略大小写,兼容IE6.0和Firefox2.0。 

前阵子没事的时候做着玩得,当时只在IE下实现,今天修改了一下,兼容firefox,还费了一番功夫。没办法,现在做的项目只要求IE,结果就对兼容性的东西了解的不是很多,看来以后还要努力啊。哈哈。

下面是完整的代码:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <title>textFilter</title>
  <script type="text/javascript">
   var folderE = null;
   var filterE = null;
   var iniVars = null;

   function init(){
    folderE = document.getElementById("folder");
    filterE = document.getElementById("filter");
    getIniVars();
   }

   //使用正则表达式来匹配,忽略前后空格,忽略大小写,兼容IE6.0和Firefox2.0
   function filter(){
    var filterValue = trim(filterE.value);
    var folderLength = folderE.childNodes.length;
    var pattern = new RegExp("^"+filterValue,"i");
    for (var i = 0;i < folderLength;i++) {
     folderE.removeChild(folderE.childNodes[folderLength-1-i]);
    }
    for (var i = 0;i<iniVars.length;i++) {
     if (pattern.test(trim(iniVars[i]))) {
      var aLi = document.createElement("LI");
      //innerText只有IE支持,所以这里用
      aLi.innerHTML = trim(iniVars[i]);
      folderE.appendChild(aLi);
     }
    }
   }

   function getIniVars(){
    iniVars = new Array();
    var j = 0;
    for (var i = 0;i<folderE.childNodes.length;i++) {
     if (folderE.childNodes[i].childNodes[0] != null) {
      iniVars[j] = folderE.childNodes[i].childNodes[0].nodeValue;
      j++;
     }
    }
   }

   function trim(x){
    return x.replace(/(^/s*)|(/s*$)/g, "");
   }
  </script>
 </head>
 <body onLoad="init()">
  <div style="width:200px;float:left;">implement js filter function</div>
  <div style="float:left;width:100px;">
   <input type="text" name="filter" onKeyUp="filter()" id="filter" />
  </div>
  <div style="clear:both;"></div>
  <ul id="folder">
   <li>aaa</li>
   <li>bbb</li>
   <li>ccc</li>
   <li>ab</li>
   <li>bc</li>
   <li>ca</li>
   <li>ac</li>
   <li>ba</li>
   <li>cb</li>
  </ul>
 </body>
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的 HTML 聊天室码,其中包含将敏感词汇转换为 * 的功能: ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>聊天室</title> <style> #messages { height: 500px; overflow-y: scroll; } </style> <script> var sensitiveWords = ["敏感词1", "敏感词2", "敏感词3"]; // 定义敏感词汇数组 function sendMessage() { var messageInput = document.getElementById("message-input"); var message = messageInput.value.trim(); if (message) { // 将敏感词汇转换为 * for (var i = 0; i < sensitiveWords.length; i++) { message = message.replace(new RegExp(sensitiveWords[i], "g"), "*".repeat(sensitiveWords[i].length)); } // 显示消息 var messagesDiv = document.getElementById("messages"); messagesDiv.innerHTML += "<div><strong>我:</strong> " + message + "</div>"; messagesDiv.scrollTop = messagesDiv.scrollHeight; // 清空输入框 messageInput.value = ""; } } </script> </head> <body> <div id="messages"></div> <div> <input type="text" id="message-input"> <button onclick="sendMessage()">发送</button> </div> </body> </html> ``` 在这个聊天室中,用户输入的消息会被显示在 `#messages` 元素中。在发送消息之前,JavaScript 代码会将消息中的敏感词汇转换为 *。转换的方法是使用 `replace` 函数和正则表达式,将每个敏感词汇替换为相同长度的 *。 请注意,这只是一个简单的示例,仅适用于小型聊天室。对于更复杂的应用程序,应该使用更复杂的算法来检测和转换敏感词汇。此外,这个示例中的 JavaScript 代码应该放在服务器端,以防止用户绕过它并发送未经过滤的消息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值