选择匹配类似于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); //返回"<meta charset="utf-8"> "