一、创建正则表达式
1.通过new RegExp创建
var p=new RegExp(/123/);
console.log(p)
2.字面量创建
var p=/123/;
console.log(p)
二、test()测试正则表达式
var p=/123/;
console.log(test(p))
三、知识点
1.边界符
/^ /: | 以……开头 |
---|---|
/ $/: | 以……结尾 |
[ ] | 选择性匹配 |
[z-a] | 选择a-z其中一个 |
[a-zA-Z] | 选择不管大写还是小写 |
[a-zA-Z0-9_-] | 可以小写大写数组下划线 |
[^ ] | 取反 |
2.量词
* | /^a*$/ ,a出现多次,包括0次 |
---|---|
+ | /^a+$/,a出现多次,不包括0次 |
? | /^a?$/ ,出现0或1次 |
{数字} | /^a{3}$/,出现了三次a; |
{{1,4} | /^a{1,4}出现1-4次 |
3.总结
[ ]是任意里面一个;
{ } 重复次数;
( )是个整体;
4.简写;
\d:指的数字;
\D:非数字;
\w:任意字母、数字、下划线;
\W:非任意字母、数字、下划线;
\s:空格
\S:非空格
5.参数
g:全局匹配
i:忽略大小写
gi:全局匹配和忽略大小写;
6.方法
test()方法
检测字符串是否符合该规则,返回 true 或 false,其参数是测试字符串。
regexObj.test(str)
regexObj 是写的正则表达式
str 我们要测试的文本
检测str文本是否符合我们写的正则表达式规范
eg:
var str = 'abc';
var re = /[a-z]/g;
console.log(re.test(str));
结果是:true,因为该字符串是否符合该规则
replace方法
替换字符串
用来替换的参数可以是一个字符串或是一个正则表达式。
stringObject.replace(regexp/substr,replacement)
stringObject 是写的正则表达式
第一个参数regexp/substr: 被替换的字符串 或者 正则表达式
第二个参数replacement: 替换为的字符串
返回值是一个替换完毕的新字符串
eg:
var str = 'abc';
var a = str.replace(/[a-z]/g, 'z');
console.log(a);
结果是:zbc
exec方法
检索字符串中的正则表达式的匹配
RegExpObject.exec(string)
参数string里面写的是要检索的字符串
返回值是一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为 null
eg:
var str = 'abcdef123456';
var re = /\d\d\d\d\d\d/;
var result = re.exec(str);
console.log(result);
结果是:123456
match方法
在字符串内检索指定的值,或找到一个或多个正则表达式的匹配
stringObject.match(searchvalue)
stringObject.match(regexp)
searchvalue规定要检索的字符串值。
regexp规定要匹配的模式的 RegExp 对象。
如果该参数不是 RegExp 对象,则需要首先把它传递给 RegExp 构造函数,将其转换为 RegExp 对象。
返回值是存放匹配结果的数组。该数组的内容依赖于 regexp 是否具有全局标志 g。
eg:
var str = "1aa2aa2"
var a = str.match(/\d+/g)
console.log(a);
结果是:1,2,2