Appearance
选择匹配
本节目标:理解“选择匹配”的核心思路,并能把它用于实际开发或面试表达。
说明:原 OneNote 中有图片引用,但图片未包含在导出目录中;本页保留了可用的文字与代码内容。 选择匹配类似于 JavaScript 的逻辑与运算,使用竖线==|==描述,表示在两个子模式的匹配结果中任选一个。例如:
- 匹配任意数字或字母
**var** r = /\w+|\d+/;- 可以定义多重选择模式。设计方法:在多个子模式之间加入选择操作符。
**var** r = /(abc)|(efg)|(123)|(456)/;为了避免歧义,应该为选择操作的多个子模式加上小括号。 示例 设计对提交的表单字符串进行敏感词过滤。先设计一个敏感词列表,然后使用竖线把它们连接在一起,定义选择匹配模式,最后使用字符串的 replace() 方法把所有敏感字符替换为可以显示的编码格式。代码如下:
**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);显示结果如下: