正则
-
创建
- 方法一:var patt=new RegExp(pattern,modifiers);
- 方法二:var patt=/pattern/modifiers;
-
组成
- = / (方括号/元字符) {量词} / 修饰符
-
修饰符
- i 执行对大小写不敏感的匹配。
- g 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。
- m 执行多行匹配。
-
方括号
- 方括号用于查找某个范围内的字符
- [abc] 查找方括号之间的任何字符。
- [^abc] 查找任何不在方括号之间的字符。
- [0-9] 查找任何从 0 至 9 的数字。
- [a-z] 查找任何从小写 a 到小写 z 的字符。
- [A-Z] 查找任何从大写 A 到大写 Z 的字符。
- [A-z] 查找任何从大写 A 到小写 z 的字符。
- [adgk] 查找给定集合内的任何字符。
- [^adgk] 查找给定集合外的任何字符。
- (red|blue|green) 查找任何指定的选项,用于匹配单词。
- 方括号用于查找某个范围内的字符
-
元字符
- 元字符是拥有特殊含义的字符
- . 查找单个字符,除了换行和行结束符。
- \w 查找单词字符。
- \W 查找非单词字符。
- \d 查找数字。
- \D 查找非数字字符。
- \s 查找空白字符。
- \S 查找非空白字符。
- \b 匹配单词边界。
- \B 匹配非单词边界。
- \0 查找 NUL 字符。
- \n 查找换行符。
- \f 查找换页符。
- \r 查找回车符。
- \t 查找制表符。
- \v 查找垂直制表符。
- \xxx 查找以八进制数 xxx 规定的字符。
- \xdd 查找以十六进制数 dd 规定的字符。
- \uxxxx 查找以十六进制数 xxxx 规定的 Unicode 字符。
- 元字符是拥有特殊含义的字符
-
量词
- n+ 匹配任何包含至少一个 n 的字符串。
- n* 匹配任何包含零个或多个 n 的字符串。
- n? 匹配任何包含零个或一个 n 的字符串。
- n{X} 匹配包含 X 个 n 的序列的字符串。
- n{X,Y} 匹配包含 X 或 Y 个 n 的序列的字符串。
- n{X,} 匹配包含至少 X 个 n 的序列的字符串。
- n$ 匹配任何结尾为 n 的字符串。
- ^n 匹配任何开头为 n 的字符串
- ?=n 匹配任何其后紧接指定字符串 n 的字符串。
- ?!n 匹配任何其后没有紧接指定字符串 n 的字符串。
-
实例方法
- test(string)
- 方法用于检测一个字符串是否匹配某个模式
- 如果字符串 string 中含有与 RegExpObject 匹配的文本,则返回 true,否则返回 false。
var str = "Visit W3School"; var patt1 = new RegExp("W3School"); var result = patt1.test(str); document.write("Result: " + result);
- stringObject.replace(regexp/substr,replacement)
- 用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
- 如果 regexp 具有全局标志 g,那么 replace() 方法将替换所有匹配的子串。否则,它只替换第一个匹配子串。
- 参数:
- regexp/substr 必需。规定子字符串或要替换的模式的 RegExp 对象。
- replacement 必需。一个字符串值。规定了替换文本或生成替换文本的函数。
<script> var arr = /['尼的','爹']/g; var str = '尼的,你玩的什么鬼,你爹啊'; console.log(str.replace(arr,'*')) </script>
- test(string)