正则表达式
正则表达式:处理字符串的一个规则 - 表达式
var reg = /规则/;
var reg = new RegExp()
\d 代表任意一个数字
. 代表任意一个字符
修饰符:
{m} 前面的字符要m个
+ 代表前面的字符最少1个
* 代表前面的字符是任意多个
例子:var str = “靓仔,有空约会。我的手机号是:12345678910。记得打给我!”;
需要提取数字
1,var reg = /\d{11}/
var arr = str.match(reg)
console.log(arr)
2,var reg = /\d+/
var arr = str.match(reg)
console.log(arr)
3,var str = ‘http://www.baidu.com’;
var reg = /.*/;
var res = str.match(reg)
console.log(res);
^ 代表必须以这个字符开头
$ 代表是否以某个字符结尾
例子:
1,var str = ‘ihfvbfhv’
var res = /^d/
var d = res.test(str)
console.log(d)
2,var str = ‘abaaccdd’;
var reg = /^a/;
// 验证字符串的开头是不是a字符
var bool = reg.test(str)
console.log(bool);
\s 代表一个空格
var str = ’ sd ’
var res = /\s+/
var d = str.replace(res,’’)
console.log(d)
继续去除右边的
var res =/\s+/
var d = d.replace(‘res’,’’)
只去除了左边的空格
| 在正则中表示或者
开启贪婪模式 - 在两个斜杠的后面加 g
例子:
var str = ’ aa ‘;
var reg = /^\s+|\s+$/g;
var res = str.replace(reg,’’)
console.log(res);
空格就去除了
开启忽略大小写,在两个斜杠的后面加 i
例子:var str = ‘i love html very much and HTML is very good’;
var reg = /html/gi;
var res = str.replace(reg,‘js’)
console.log(res);
[ ] 表示括号中的任意一个字符
[0-9]
[a-z]
[A-Z]
[a-zA-Z]
[3-9]
[abcdef]
判断是否是一个电话号码
分析电话号码是11位的,^第一位为1,第二位为35879,其他9位为0-9最后一位要用美元符号。
{n,m} - 最少n位,最多m位
{n,} - 最少n位,最多不限
qq号最少5位,最多10位。
输出答案为false
? 代表前面的字符最多1个
var str = ‘abcdefghhhhhhijkl’;
var reg = /h?/;
var arr = reg.exec(str)
console.log(arr);
字符串前面下标0 没有h 输出空
var str = ‘abcdefghhhhhhijkl’;
var reg = /a?/;
var arr = reg.exec(str)
console.log(arr);
字符串前面下标0 有a 输出a
在正则中有特殊含义的符号前面加 \ 就将特殊含义去掉了,就成普通字符了
![v;](https://img-blog.csdnimg.cn/20210407191457927.png
网易邮箱规则: 6~18个字符@163.com 开头为字母
\w 代表任意一个数字、字母、下划线
字符串.search(正则) - 如果找到了就返回下标,找不到就返回-1
正则.test(字符串) - 如果满足规则,就返回true,不满足规则就返回false
小案例:
总结
1.验证字符串是否满足规则
test
search
2.从字符串中提取出满足规则的那一部分
match
exec
3.将字符串中满足规则的那一部分替换掉
replace
正则表达式的作用
- 提取字符串:从指定的字符串中将符合规则部分提取出来
- 匹配正则:判断一个字符串是否跟指定的规则匹配
- 替换字符串:将一个字符串中跟规则匹配的部分替换掉
总结
方法:
字符串.match(正则)
正则.exec(字符串)
返回数组
**字符串.search(正则) - 如果找到了就返回下标,找不到就返回-1
正则.test(字符串) - 如果满足规则,就返回true,不满足规则就返回false
字符串.replace(正则表达式,新字符)**