[JS]正则表达式
在JavaScript中,正则表达式通常用于搜索、替换那些符合某个模式的文本。
- 创建正则表达式
在JavaScript中,有两种创建正则表达式的方法:
- 使用字面量语法:
var re = /ab+c/;
- 使用RegExp构造函数:
var re = new RegExp('ab+c');
- 测试正则表达式
正则表达式对象有一个方法叫做test(),它会检查字符串是否匹配正则表达式,如果匹配就返回true,不匹配就返回false。
var re = /ab+c/;
console.log(re.test('123abc456')); // 输出:true
console.log(re.test('123acb456')); // 输出:false
- 匹配正则表达式
正则表达式对象有一个方法叫做exec(),它会检查字符串是否匹配正则表达式,如果匹配就返回匹配的结果,不匹配就返回null。
var re = /ab+c/;
console.log(re.exec('123abc456')); // 输出:["abc", index: 3, input: "123abc456", groups: undefined]
console.log(re.exec('123acb456')); // 输出:null
- 正则表达式的方法
- search():它会返回字符串中第一个匹配正则表达式的子串的起始位置,如果没有找到匹配的子串,则返回-1。
var re = /ab+c/;
console.log('123abc456'.search(re)); // 输出:3
console.log('123acb456'.search(re)); // 输出:-1
- replace():它会查找字符串中所有匹配正则表达式的子串,并用指定的新子串替换它们。
var re = /ab+c/;
console.log('123abc4abcdabc6'.replace(re, 'test')); // 输出:123test4test6
- 正则表达式的修饰符
- g:表示全局搜索,匹配字符串中所有的匹配项。
- i:表示不区分大小写,进行搜索。
- m:表示多行搜索,^和$会考虑每一行的开始和结束,而不是整个字符串的开始和结束。
var re = /ab+c/gi;
console.log('123abc4abcdABC6'.replace(re, 'test')); // 输出:123test4testTEST6
- 正则表达式的元字符
- .:匹配除换行符之外的任何单个字符。
- \w:匹配任何单词字符,包括下划线。
- \W:匹配任何非单词字符。
- \d:匹配任何数字。
- \D:匹配任何非数字字符。
- \s:匹配任何空白字符,包括空格、制表符、换页符等。
- \S:匹配任何非空白字符。
- \b:匹配单词边界。
- \B:匹配非单词边界。
- \0:匹配null字符。
- \n:匹配换行符。
- \f:匹配换页符。
- \r:匹配回车符。
- \t:匹配制表符。
- \v:匹配垂直制表符。
- \uXXXX:匹配Unicode字符。
- \xXX
评论已关闭