1、什么是正则表达式:
能让计算机读懂的字符串匹配规则。
2、正则表达式的写法:
var re=new RegExp('规则', '可选参数');
var re=/规则/参数;
3、规则中的字符
1)普通字符匹配:
如:/a/ 匹配字符 ‘a’,/a,b/ 匹配字符 ‘a,b’
2)转义字符匹配:
\d 匹配一个数字,即0-9
\D 匹配一个非数字,即除了0-9
\w 匹配一个单词字符(字母、数字、下划线)
\W 匹配任何非单词字符。等价于[^A-Za-z0-9_]
\s 匹配一个空白符
\S 匹配一个非空白符
\b 匹配单词边界
\B 匹配非单词边界
. 匹配一个任意字符,除了换行符‘\n’和回车符‘\r’
\1 重复子项
4、量词:对左边的匹配字符定义个数
? 出现零次或一次(最多出现一次)
- 出现一次或多次(至少出现一次)
- 出现零次或多次(任意次)
{n} 出现n次
{n,m} 出现n到m次
{n,} 至少出现n次
5、任意一个或者范围
[abc123] : 匹配‘abc123’中的任意一个字符
[a-z0-9] : 匹配a到z或者0到9中的任意一个字符
6、限制开头结尾
^ 以紧挨的元素开头
$ 以紧挨的元素结尾
7、修饰参数:
g: global,全文搜索,默认搜索到第一个结果接停止
i: ingore case,忽略大小写,默认大小写敏感
m: multiple lines,多行搜索(更改^ 和$的含义,使它们分别在任意一行对待行首和行尾匹配,而不仅仅在整个字符串的开头和结尾匹配)
8、常用函数
1、test
用法:正则.test(字符串) 匹配成功,就返回真,否则就返回假
2、search
用法:字符串.search(正则) 匹配成功,返回位置,否则返回-1
3、match
用法: 字符串.match(正则);匹配成功,就返回匹配成功的数组,否则就返回null
4、replace
用法:字符串.replace(正则,新的字符串) 匹配成功的字符去替换新的字符
正则默认规则
匹配成功就结束,不会继续匹配,区分大小写
例子
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>正则 ‘’验证QQ</title>
<script type="text/javascript">
function checkQQ(qq){
var flag = true ; //如果不符合就是false
if(qq.length>5 && qq.length<=15){
if(qq.indexOf('0')){
if(isNaN(qq)){
flag = false; //不是数字
}
}else{
flag = false; // 以0开头不符合了
}
}else{
flag = false; // 长度不符合
}
return flag ;
}
// console.log(checkQQ('3241234123'));
// console.log(checkQQ('3dsfggf32432'));
// console.log(checkQQ('dfa12344454.'));
// console.log(checkQQ('2134545'));
//正则表达式
var regex = /^[1-9]\d{4,14}$/;
// console.log(regex.test('1234567765'))
// console.log(regex.test('433egsf..'))
// console.log(regex.test('dfgfsd;;5'))
// console.log(regex.test('dsfasdfhgg.,<5'))
//面向对象方法 ig i忽略大小写 g 全文搜索
// var re = new RegeExp('a','ig');
var re2 = /a/ig ;
var str = 'abc';
// alert(re2.texqt(str)); //匹配上了
var re3 = /\d/;
var str3 = '123';
// alert(re3.test(str3));
var str5 = '244tgfdfr234red345rfdc';
var re5 = /\d+/;
var arr = str5.match(re5);
// alert(arr);
var str5 = '244tgfdfr234red345rfdc';
var re5 = /\d+/g;
var arr = str5.match(re5); //match 匹配数字
// alert(arr);
var re6 = /d/;
// alert(str5.search(re6)); //6
//search -->indexOf //也是找第一次出现的位置
var str6 = str5.replace(re5,'-'); //replace替换
// alert(str6);
</script>
</head>
<body>
</body>
</html>
网友评论