JS-过滤敏感词【RegExp】
来自腾讯课堂笔记:https://ke.qq.com/webcourse/index.html#course_id=152997&term_id=100174752&taid=801037170660773&vid=y1412sc0r8c
知识点:
1: var re = /[我|车|一]+/g;
也可以写成:var re=/我|车|一/g;
即去掉了[]和+,这个案例中,+表示连续多个,可以不用,但是遇到判断类型那种,就必须要了,其实这个也应该加上额,万一“我”字后面还有一个“我”连着呢?
对与中括号"[]",我恍惚了,他是表示一个集合,把所有的要判断的数据都装起来。如果不用他,我里边改怎么写?后来写上去没问题,看老师的代码,他没有写也可以。这样看来,如果单独就这几个字符,不用加其他的正则表达式的时候,就不需要括号了,就像只算加减法的时候,不用括号他会依次计算,加减法还有乘除法并且你想要先算加减法的时候,就需要括号把他们组合成一个整体了。
2:replace();这里的思路是,让第二个文本框的value等于第一个文本框中内容被修改后的内容,这个内容是通过replace方法进行替换过滤的,而替换方法的括号内部,需要两个参数,第一个是要被替换掉的文字,第二个是要替换成的东西。第一个要替换的文字,用正则做了表达。表达的意思就是这三个字,“我”或“车”或“一”,遇到后都要替换,查找的范围是global全局,即所有的txt1[value]内的内容。
问题:我发现“|”也别过滤掉了。
html
1 <textarea name="" rows="20" cols="20" id="txt1">对于10万元以内购车预算的读者,其实我们可以选择的余地有很多。在自主品牌阵营里,有大量可选的紧凑级轿车或者小型SUV。如果想选择一款合资车型,也有很多合资小型车在这一细分市场中激烈竞争。例如广汽丰田于近期推出的YARiS L 致享(以下简称致享)就是其中之一。作为“新人”,致享要面对的直接竞争对手包括同门师兄——一汽丰田威驰、雪佛兰赛欧以及现代悦纳等合资小型车。在众多竞争对手面前,致享的竞争力究竟如何?</textarea> 2 <input type="button" name="" id="btn" value="过滤" /> 3 <textarea name="" rows="30" cols="30" id="txt2"></textarea>
script
1 <script type="text/javascript"> 2 window.onload = function(){ 3 var oBtn = document.getElementById('btn'); 4 var oTxt1 = document.getElementById("txt1"); 5 var oTxt2 = document.getElementById("txt2"); 6 var re = /[我|车|一]+/g; 7 oBtn.onclick = function(){ 8 oTxt2.value = oTxt1.value.replace(re,"【@!@!@】"); 9 } 10 } 11 </script>