选择匹配

课后整理 2020-12-10

选择匹配类似于JavaScript运算符逻辑与,使用竖线(|)描述,表示在两个子模式的匹配结果中任选一个。例如:

var r = /\w+|\d+/;                                      //选择重复字符类 
var r = /(abc)|(efg)|(123)|(456)/;                 //多重选择匹配 

注意,为了避免歧义,应该为选择操作的多个子模式加上小括号。

【示例】设计对提交的表单字符串进行敏感词过滤。先设计一个敏感词列表,然后使用竖线把它们连接在一起,定义选择匹配模式,最后使用字符串的repalce()方法把所有敏感字符替换为可以显示的编码格式。

var s = '<meta charset="utf-8">';                 //待过滤的表单提交信息 
var r = /\'|\"|\<|\>/gi;                                  //过滤敏感字符的正则表达式 
function f(){                                             //替换函数 
    //把敏感字符替换为对应的网页显示的编码格式
    return "&#" +  arguments[0].charCodeAt(0) + ";";
}
var a = s.replace(r,f);                                 //执行过滤替换 
document.write(a);                                    //在网页中显示正常的字符信息 
console.log(a);                                          //返回"&#60;meta  charset=&#34;utf-8&#34;&#62; "